
Entry points
C3/0000:	4C1B00  	JMP $001B      ; Invoke desired field menu
C3/0003:	4C45A4  	JMP $A445      ; Decode joypads for battle
C3/0006:	4C24A4  	JMP $A424      ; Initialize joypad data
C3/0009:	4C7AA4  	JMP $A47A      ; Decode joypads for field
C3/000C:	4CC813  	JMP $13C8      ; Advance play time
C3/000F:	4CFE14  	JMP $14FE      ; Load save data on defeat
C3/0012:	4C1CC5  	JMP $C51C      ; Show an ending cinematic
C3/0015:	4CD296  	JMP $96D2      ; Optimize member's gear
C3/0018:	4C7FD5  	JMP $D57F      ; Load map for final land

Invoke requested field menu
C3/001B:	C210    	REP #$10       ; 16-bit X, Y
C3/001D:	E220    	SEP #$20       ; 8-bit A
C3/001F:	A900    	LDA #$00       ; Zero A
C3/0021:	48      	PHA            ; Put on stack
C3/0022:	AB      	PLB            ; Set DB to 0
C3/0023:	A20000  	LDX #$0000     ; Zero X
C3/0026:	DA      	PHX            ; Put on stack
C3/0027:	2B      	PLD            ; Set DP to 0
C3/0028:	A20000  	LDX #$0000     ; ...
C3/002B:	8600    	STX $00        ; Optimzn word: 0
C3/002D:	A97E    	LDA #$7E       ; Bank: 7E
C3/002F:	8D8321  	STA $2183      ; Set WRAM HB
C3/0032:	20C000  	JSR $00C0      ; Reroute NMI/IRQ
C3/0035:	AD0002  	LDA $0200      ; Menu to open
C3/0038:	C902    	CMP #$02       ; Load menu?
C3/003A:	D003    	BNE $003F      ; Branch if not
C3/003C:	209B70  	JSR $709B      ; Reset game data
C3/003F:	20F800  	JSR $00F8      ; Load GFX, colors
C3/0042:	20DD00  	JSR $00DD      ; Handle menu
C3/0045:	2224A4C3	JSL $C3A424    ; Get joypad config
C3/0049:	A98F    	LDA #$8F       ; BRT: 15 and OFF
C3/004B:	8D0021  	STA $2100      ; Disable screen
C3/004E:	9C0042  	STZ $4200      ; Disable INT, pad
C3/0051:	9C0B42  	STZ $420B      ; Disable DMA...
C3/0054:	9C0C42  	STZ $420C      ; Disable HDMA

Fork: Leaving Load menu
C3/0057:	AD0002  	LDA $0200      ; Menu closed
C3/005A:	C902    	CMP #$02       ; Load menu?
C3/005C:	D011    	BNE $006F      ; Branch if not
C3/005E:	AD0502  	LDA $0205      ; Start new game?
C3/0061:	100C    	BPL $006F      ; Branch if so
C3/0063:	AD4E1D  	LDA $1D4E      ; Game options
C3/0066:	2920    	AND #$20       ; Stereo sound?
C3/0068:	F005    	BEQ $006F      ; Branch if so
C3/006A:	A9FF    	LDA #$FF       ; Mode: Mono
C3/006C:	203F3E  	JSR $3E3F      ; Adjust volume

Fork: Rename Card
C3/006F:	AD0002  	LDA $0200      ; In main menu?
C3/0072:	D04B    	BNE $00BF      ; Return if not
C3/0074:	AD0502  	LDA $0205      ; Rename request?
C3/0077:	1046    	BPL $00BF      ; Return if not
C3/0079:	C9FE    	CMP #$FE       ; Rename actor?
C3/007B:	D021    	BNE $009E      ; SwdTech if not
C3/007D:	A901    	LDA #$01       ; Actor renaming
C3/007F:	8D0002  	STA $0200      ; Set menu number
C3/0082:	AD0102  	LDA $0201      ; Area permissions
C3/0085:	8D0F02  	STA $020F      ; Preserve them
C3/0088:	AC0602  	LDY $0206      ; Actor's address
C3/008B:	8C0102  	STY $0201      ; Set as target's
C3/008E:	220000C3	JSL $C30000    ; Call naming menu
C3/0092:	AD0F02  	LDA $020F      ; Area permissions
C3/0095:	8D0102  	STA $0201      ; Restore them
C3/0098:	9C0002  	STZ $0200      ; Menu: Main
C3/009B:	4C1B00  	JMP $001B      ; Open main menu

Fork: SwdTech renaming (SFC)
C3/009E:	A906    	LDA #$06       ; SwdTech renaming
C3/00A0:	8D0002  	STA $0200      ; Set menu number
C3/00A3:	AD0102  	LDA $0201      ; Area permissions
C3/00A6:	8D0F02  	STA $020F      ; Preserve them
C3/00A9:	AD0602  	LDA $0206      ; Chosen SwdTech
C3/00AC:	8D0102  	STA $0201      ; Set as target
C3/00AF:	220000C3	JSL $C30000    ; Call naming menu
C3/00B3:	AD0F02  	LDA $020F      ; Area permissions
C3/00B6:	8D0102  	STA $0201      ; Restore them
C3/00B9:	9C0002  	STZ $0200      ; Menu: Main
C3/00BC:	4C1B00  	JMP $001B      ; Open main menu
C3/00BF:	6B      	RTL

Reroute interrupt vectors
C3/00C0:	A95C    	LDA #$5C       ; JML opcode
C3/00C2:	8D0015  	STA $1500      ; Put by NMI loc
C3/00C5:	8D0415  	STA $1504      ; Put by IRQ loc
C3/00C8:	A28713  	LDX #$1387     ; C3/1387
C3/00CB:	8E0115  	STX $1501      ; Set NMI LBs
C3/00CE:	A2C713  	LDX #$13C7     ; C3/13C7
C3/00D1:	8E0515  	STX $1505      ; Set IRQ LBs
C3/00D4:	A9C3    	LDA #$C3       ; Bank: C3
C3/00D6:	8D0315  	STA $1503      ; Set NMI HB
C3/00D9:	8D0715  	STA $1507      ; Set IRQ HB
C3/00DC:	60      	RTS

Access requested field menu
C3/00DD:	7B      	TDC            ; Clear A
C3/00DE:	AD0002  	LDA $0200      ; Menu to open
C3/00E1:	0A      	ASL A          ; Double it
C3/00E2:	AA      	TAX            ; Index it
C3/00E3:	7CE600  	JMP ($00E6,X)  ; Invoke menu

Jump table for the above
C3/00E6:	1A01    	; Main menu
C3/00E8:	B301    	; Actor naming
C3/00EA:	6F01    	; Load menu
C3/00EC:	2101    	; Shop
C3/00EE:	2B01    	; Lineup
C3/00F0:	3D01    	; Bogus...
C3/00F2:	4901    	; SwdTech naming
C3/00F4:	5201    	; Colosseum
C3/00F6:	6601    	; Final battle lineup

Load menu graphics and colors; initialize general variables
C3/00F8:	20FA68  	JSR $68FA      ; Reset variables
C3/00FB:	201569  	JSR $6915      ; Get party info
C3/00FE:	20A969  	JSR $69A9      ; No use...
C3/0101:	2248CDD4	JSL $D4CD48    ; Init registers
C3/0105:	2224A4C3	JSL $C3A424    ; Init joypad data
C3/0109:	7B      	TDC            ; Gradient set: 0
C3/010A:	221DCAD4	JSL $D4CA1D    ; Create gradient
C3/010E:	20DC69  	JSR $69DC      ; Queue Win1 HDMA
C3/0111:	201411  	JSR $1114      ; Reset OAM, queue
C3/0114:	20876A  	JSR $6A87      ; Load nonskin GFX
C3/0117:	4C873A  	JMP $3A87      ; Load skin visuals

Invoke main menu
C3/011A:	A904    	LDA #$04       ; C3/1A8A
C3/011C:	8526    	STA $26        ; Next: Init menu
C3/011E:	4CBA01  	JMP $01BA      ; Enter menu loop

Invoke shop menu
C3/0121:	20993F  	JSR $3F99      ; Apply user font
C3/0124:	A924    	LDA #$24       ; C3/B466
C3/0126:	8526    	STA $26        ; Next: Init menu
C3/0128:	4CBA01  	JMP $01BA      ; Enter menu loop

Invoke Lineup menu
C3/012B:	20993F  	JSR $3F99      ; Apply user font
C3/012E:	203801  	JSR $0138      ; Clear saved cursor
C3/0131:	A92C    	LDA #$2C       ; C3/70E7
C3/0133:	8526    	STA $26        ; Next: Init menu
C3/0135:	4CBA01  	JMP $01BA      ; Enter menu loop

Clear cursor position restored from Lineup's Status menu...
C3/0138:	7B      	TDC            ; Clear A
C3/0139:	A8      	TAY            ; Clear Y
C3/013A:	848E    	STY $8E        ; Clear position
C3/013C:	60      	RTS

Invoke bogus Lineup menu...
C3/013D:	20993F  	JSR $3F99      ; Apply user font
C3/0140:	203801  	JSR $0138      ; Clear saved cursor
C3/0143:	A92F    	LDA #$2F       ; C3/7AE5
C3/0145:	8526    	STA $26        ; Next: Bogus...
C3/0147:	8071    	BRA $01BA      ; Enter menu loop

Invoke SwdTech naming menu (SFC)
C3/0149:	20993F  	JSR $3F99      ; Apply user font
C3/014C:	A93F    	LDA #$3F       ; C3/B437
C3/014E:	8526    	STA $26        ; Next: Bogus...
C3/0150:	8068    	BRA $01BA      ; Enter menu loop

Invoke Colosseum menu
C3/0152:	20993F  	JSR $3F99      ; Apply user font
C3/0155:	6479    	STZ $79        ; Never read...
C3/0157:	647A    	STZ $7A        ; Never read...
C3/0159:	647B    	STZ $7B        ; Never read...
C3/015B:	A9FF    	LDA #$FF       ; Empty item
C3/015D:	8D0502  	STA $0205      ; Will gain 1...
C3/0160:	A971    	LDA #$71       ; C3/ACAA
C3/0162:	8526    	STA $26        ; Next: Init menu
C3/0164:	8054    	BRA $01BA      ; Enter menu loop

Invoke final battle lineup
C3/0166:	20993F  	JSR $3F99      ; Apply user font
C3/0169:	A973    	LDA #$73       ; C3/A9F8
C3/016B:	8526    	STA $26        ; Next: Init menu
C3/016D:	804B    	BRA $01BA      ; Enter menu loop

Invoke Load menu
C3/016F:	AFF17F30	LDA $307FF1    ; RNG index in SRAM
C3/0173:	1A      	INC A          ; RNG index +1
C3/0174:	8FF17F30	STA $307FF1    ; Save changes
C3/0178:	2224A4C3	JSL $C3A424    ; Init joypad data
C3/017C:	202370  	JSR $7023      ; Test SRAM markers
C3/017F:	901E    	BCC $019F      ; Abort if invalid
C3/0181:	A901    	LDA #$01       ; Song: The Prelude
C3/0183:	8D0113  	STA $1301      ; Set I/O port 1
C3/0186:	A910    	LDA #$10       ; APU command
C3/0188:	8D0013  	STA $1300      ; Set I/O port 0
C3/018B:	A980    	LDA #$80       ; Volume specs
C3/018D:	8D0213  	STA $1302      ; Set I/O port 2
C3/0190:	220400C5	JSL $C50004    ; Play song
C3/0194:	A9FF    	LDA #$FF       ; New game: No
C3/0196:	8D0502  	STA $0205      ; Preset exit mode
C3/0199:	A920    	LDA #$20       ; C3/1D03
C3/019B:	8526    	STA $26        ; Next: Init menu
C3/019D:	801B    	BRA $01BA      ; Enter menu loop

Fork: Force new game
C3/019F:	20212A  	JSR $2A21      ; Reset play time
C3/01A2:	A901    	LDA #$01       ; Save slot: 1
C3/01A4:	8D2402  	STA $0224      ; Set last viewed
C3/01A7:	9C1F02  	STZ $021F      ; Game's file: None
C3/01AA:	A9FF    	LDA #$FF       ; Null value
C3/01AC:	8526    	STA $26        ; Next: Exit menu
C3/01AE:	9C0502  	STZ $0205      ; Set new game mode
C3/01B1:	8007    	BRA $01BA      ; Enter menu loop

Invoke actor naming menu
C3/01B3:	20993F  	JSR $3F99      ; Apply user font
C3/01B6:	A95D    	LDA #$5D       ; C3/652D
C3/01B8:	8526    	STA $26        ; Next: Init menu

Main loop for field menus
C3/01BA:	201214  	JSR $1412      ; Refresh screen
C3/01BD:	7B      	TDC            ; Clear A
C3/01BE:	A526    	LDA $26        ; Menu command
C3/01C0:	C9FF    	CMP #$FF       ; Exit to map?
C3/01C2:	F014    	BEQ $01D8      ; Branch if so
C3/01C4:	C220    	REP #$20       ; 16-bit A
C3/01C6:	0A      	ASL A          ; Double it
C3/01C7:	AA      	TAX            ; Index it
C3/01C8:	E220    	SEP #$20       ; 8-bit A
C3/01CA:	FCDB01  	JSR ($01DB,X)  ; Handle menu cmd
C3/01CD:	20B011  	JSR $11B0      ; Handle anim queue
C3/01D0:	204D13  	JSR $134D      ; Update screen/pad
C3/01D3:	20DB02  	JSR $02DB      ; Check event timer
C3/01D6:	80E5    	BRA $01BD      ; Loop
C3/01D8:	6443    	STZ $43        ; Disable HDMA
C3/01DA:	60      	RTS

Jump table for the above
C3/01DB:	711D    	; 00: Fade out screen
C3/01DD:	7E1D    	; 01: Fade in screen
C3/01DF:	8B1D    	; 02: Wait while menu fades in or out
C3/01E1:	941D    	; 03: Exit main menu's portrait area
C3/01E3:	8A1A    	; 04: Initialize main menu
C3/01E5:	A41D    	; 05: Sustain main menu
C3/01E7:	E81D    	; 06: Target one actor in main menu
C3/01E9:	D61A    	; 07: Initialize Item menu
C3/01EB:	F71E    	; 08: Handle Item menu choice 1
C3/01ED:	5B1B    	; 09: Initialize Skills menu
C3/01EF:	F41F    	; 0A: Sustain Skills menu
C3/01F1:	461C    	; 0B: Initialize Status menu
C3/01F3:	F521    	; 0C: Sustain Status menu
C3/01F5:	7D1C    	; 0D: Initialize Config menu
C3/01F7:	C522    	; 0E: Sustain Config menu
C3/01F9:	0C24    	; 0F: Handle Order menu choice 1
C3/01FB:	5324    	; 10: Handle Order menu choice 2
C3/01FD:	A924    	; 11: Switch members in Order menu
C3/01FF:	3725    	; 12: Wait while member changes row
C3/0201:	A01C    	; 13: Initialize Save menu
C3/0203:	4025    	; 14: Sustain Save menu
C3/0205:	E31C    	; 15: Initialize save confirmation
C3/0207:	9D25    	; 16: Sustain save confirmation
C3/0209:	F425    	; 17: Handle Item menu options
C3/020B:	4127    	; 18: Sustain rare item menu
C3/020D:	7927    	; 19: Handle Item menu choice 2
C3/020F:	E227    	; 1A: Sustain Magic menu
C3/0211:	8A28    	; 1B: Sustain Lore menu
C3/0213:	AA28    	; 1C: Sustain Dance menu
C3/0215:	BA28    	; 1D: Sustain Rage menu
C3/0217:	D328    	; 1E: Handle esper selection
C3/0219:	9D25    	; 1F: Unused duplicate...
C3/021B:	031D    	; 20: Initialize Load menu
C3/021D:	C229    	; 21: Sustain Load menu
C3/021F:	511D    	; 22: Initialize load confirmation
C3/0221:	2A2A    	; 23: Sustain load confirmation
C3/0223:	66B4    	; 24: Initialize shop menu
C3/0225:	9BB4    	; 25: Sustain main shop menu
C3/0227:	BDB4    	; 26: Handle buy item list
C3/0229:	05B5    	; 27: Handle buy order menu
C3/022B:	0EB6    	; 28: Return to Buy menu after delay
C3/022D:	16B6    	; 29: Handle sell item list
C3/022F:	76B6    	; 2A: Handle sell order menu
C3/0231:	52B7    	; 2B: Return to Sell menu after delay
C3/0233:	E770    	; 2C: Initialize Lineup menu
C3/0235:	6871    	; 2D: Handle Lineup menu choice 1
C3/0237:	0C72    	; 2E: Handle Lineup menu choice 2
C3/0239:	E57A    	; 2F: Bogus...
C3/023B:	257B    	; 30: Bogus...
C3/023D:	257B    	; 31: Bogus...
C3/023F:	257B    	; 32: Bogus...
C3/0241:	7729    	; 33: Sustain Blitz menu
C3/0243:	3A29    	; 34: Wait while showing who holds esper
C3/0245:	B81B    	; 35: Initialize Equip menu
C3/0247:	2196    	; 36: Handle Equip menu options
C3/0249:	B51E    	; 37: Handle multitargeting in main menu
C3/024B:	321C    	; 38: Initialize party gear overview
C3/024D:	6629    	; 39: Sustain party gear overview
C3/024F:	652A    	; 3A: Initialize spell usage menu
C3/0251:	AE2A    	; 3B: Handle single-target spell
C3/0253:	1C2D    	; 3C: Return to Magic menu
C3/0255:	782D    	; 3D: Handle multitarget spell
C3/0257:	8E29    	; 3E: Sustain SwdTech menu
C3/0259:	37B4    	; 3F: SFC: Initialize SwdTech naming menu
C3/025B:	37B4    	; 40: SFC: Handle SwdTech naming choice 1
C3/025D:	37B4    	; 41: SFC: Handle SwdTech naming choice 2
C3/025F:	1D63    	; 42: Initialize Lineup's Status menu
C3/0261:	3F63    	; 43: Sustain Lineup's Status menu
C3/0263:	1C7D    	; 44: Bogus...
C3/0265:	1C7D    	; 45: Bogus...
C3/0267:	1C7D    	; 46: Bogus...
C3/0269:	C242    	; 47: Initialize Cmd.Set menu
C3/026B:	DF42    	; 48: Handle Cmd.Set menu member selection
C3/026D:	AD46    	; 49: SFC: Initialize Button Settings menu
C3/026F:	AD46    	; 4A: SFC: Sustain Button Settings menu
C3/0271:	AD46    	; 4B: Initialize Controller menu
C3/0273:	CA46    	; 4C: Sustain Controller menu
C3/0275:	CE58    	; 4D: Sustain esper data menu
C3/0277:	37B4    	; 4E: SFC: Scroll to SwdTech naming page 2
C3/0279:	37B4    	; 4F: SFC: Scroll to SwdTech naming page 1
C3/027B:	003A    	; 50: Scroll to Config page 2
C3/027D:	213A    	; 51: Scroll to Config page 1
C3/027F:	0A1A    	; 52: Queue fade-in for save menu
C3/0281:	FB19    	; 53: Queue fade-out for save menu
C3/0283:	191A    	; 54: Wait while save menu fades in or out
C3/0285:	8498    	; 55: Handle selection of gear slot to fill
C3/0287:	CF98    	; 56: Handle manual gear removal
C3/0289:	0F99    	; 57: Handle gear browsing
C3/028B:	4B9E    	; 58: Initialize Relic menu
C3/028D:	B89E    	; 59: Handle Relic menu options
C3/028F:	FD9F    	; 5A: Handle selection of relic slot to fill
C3/0291:	97A0    	; 5B: Handle relic browsing
C3/0293:	0AA1    	; 5C: Handle relic removal
C3/0295:	2D65    	; 5D: Initialize actor naming menu
C3/0297:	E689    	; 5E: Sustain shifted gear data menu
C3/0299:	6C65    	; 5F: Sustain actor naming menu
C3/029B:	E865    	; 60: SFC: Scroll to actor naming page 2
C3/029D:	E865    	; 61: SFC: Scroll to actor naming page 1
C3/029F:	3843    	; 62: Handle Cmd.Set menu command choice 1
C3/02A1:	7643    	; 63: Handle Cmd.Set menu command choice 2
C3/02A3:	8389    	; 64: Sustain non-shifted gear data menu
C3/02A5:	E736    	; 65: Shift screen
C3/02A7:	FF79    	; 66: Queue fade-in for Lineup menu
C3/02A9:	F079    	; 67: Queue fade-out for Lineup menu
C3/02AB:	0E7A    	; 68: Wait while Lineup menu fades in or out
C3/02AD:	877A    	; 69: Erase warning in Lineup menu after delay
C3/02AF:	A763    	; 6A: Sustain shifted Status menu
C3/02B1:	B422    	; 6B: Unknown, unused menu mode...
C3/02B3:	B19F    	; 6C: Handle delayed fade-out for Reequip
C3/02B5:	1A1C    	; 6D: Open Equip menu after optimizing gear
C3/02B7:	261C    	; 6E: Open Equip menu after removing all gear
C3/02B9:	848A    	; 6F: Initialize item usage menu
C3/02BB:	968A    	; 70: Sustain item usage menu
C3/02BD:	AAAC    	; 71: Initialize Colosseum item menu
C3/02BF:	DCAC    	; 72: Sustain Colosseum item menu
C3/02C1:	F8A9    	; 73: Initialize final battle lineup
C3/02C3:	25AA    	; 74: Sustain final battle lineup
C3/02C5:	B7AD    	; 75: Initialize Colosseum matchup menu
C3/02C7:	0FAE    	; 76: Sustain Colosseum matchup menu
C3/02C9:	351B    	; 77: Return from item usage menu
C3/02CB:	8AAD    	; 78: Bogus...
C3/02CD:	7D9E    	; 79: Swap actor in Relic menu, retain Equip mode
C3/02CF:	8B9E    	; 7A: Swap actor in Relic menu, retain Remove mode
C3/02D1:	0000    	; 7B: Bogus...
C3/02D3:	0000    	; 7C: Bogus...
C3/02D5:	3171    	; 7D: Return to Lineup menu from Status menu
C3/02D7:	E51B    	; 7E: Swap actor in Equip menu, retain Equip mode
C3/02D9:	F31B    	; 7F: Swap actor in Equip menu, retain Remove mode

Set to exit menu if event countdown timer expired
C3/02DB:	A5B4    	LDA $B4        ; Already handled?
C3/02DD:	D019    	BNE $02F8      ; Exit if so
C3/02DF:	AD8811  	LDA $1188      ; Timer 0 flags
C3/02E2:	8920    	BIT #$20       ; Abort if expired?
C3/02E4:	F012    	BEQ $02F8      ; Exit if not
C3/02E6:	AC8911  	LDY $1189      ; Timer expired?
C3/02E9:	D00D    	BNE $02F8      ; Exit if not
C3/02EB:	A9FF    	LDA #$FF       ; Null value
C3/02ED:	8527    	STA $27        ; Queue menu exit
C3/02EF:	6426    	STZ $26        ; Next: Fade-out
C3/02F1:	A905    	LDA #$05       ; Origin: Timer
C3/02F3:	8D0502  	STA $0205      ; Set exit reason
C3/02F6:	85B4    	STA $B4        ; Disable this fn
C3/02F8:	60      	RTS

Load text string into tilemap
C3/02F9:	84E7    	STY $E7        ; Set src LBs
C3/02FB:	A9C3    	LDA #$C3       ; Bank: C3
C3/02FD:	85E9    	STA $E9        ; Set src HB
C3/02FF:	A600    	LDX $00        ; Dst index: 0
C3/0301:	9B      	TXY            ; Src index: 0
C3/0302:	C220    	REP #$20       ; 16-bit A
C3/0304:	A7E7    	LDA [$E7]      ; Tilemap ptr
C3/0306:	85EB    	STA $EB        ; Set dst LBs
C3/0308:	E6E7    	INC $E7        ; Src adr +1
C3/030A:	E6E7    	INC $E7        ; Src adr +1
C3/030C:	E220    	SEP #$20       ; 8-bit A
C3/030E:	A97E    	LDA #$7E       ; Bank: 7E
C3/0310:	85ED    	STA $ED        ; Set dst HB
C3/0312:	B7E7    	LDA [$E7],Y    ; Text character
C3/0314:	F00F    	BEQ $0325      ; Exit if <end>
C3/0316:	5A      	PHY            ; Save src index
C3/0317:	9B      	TXY            ; Dst index
C3/0318:	97EB    	STA [$EB],Y    ; Add char to map
C3/031A:	E8      	INX            ; Dst index +1
C3/031B:	9B      	TXY            ; Move it to Y
C3/031C:	A529    	LDA $29        ; Palette, etc.
C3/031E:	97EB    	STA [$EB],Y    ; Set attributes
C3/0320:	E8      	INX            ; Dst index +1
C3/0321:	7A      	PLY            ; Src index
C3/0322:	C8      	INY            ; Src index +1
C3/0323:	80ED    	BRA $0312      ; Load next char
C3/0325:	60      	RTS

Load and adjust window tile numbers, define attributes
C3/0326:	84E7    	STY $E7        ; Save attributes
C3/0328:	A600    	LDX $00        ; Index: 0
C3/032A:	C220    	REP #$20       ; 16-bit A
C3/032C:	BF4E04C3	LDA $C3044E,X  ; Tile number
C3/0330:	18      	CLC            ; Prepare ADC
C3/0331:	65E7    	ADC $E7        ; Add attributes
C3/0333:	9F199F7E	STA $7E9F19,X  ; Save in RAM
C3/0337:	E8      	INX            ; Index +1
C3/0338:	E8      	INX            ; Index +1
C3/0339:	E03800  	CPX #$0038     ; Done 28 tiles?
C3/033C:	D0EE    	BNE $032C      ; Loop if not
C3/033E:	E220    	SEP #$20       ; 8-bit A
C3/0340:	60      	RTS

Prepare to and draw a menu window
C3/0341:	A9C3    	LDA #$C3       ; Bank: C3
C3/0343:	85E9    	STA $E9        ; Set src HB
C3/0345:	84E7    	STY $E7        ; Set src LBs
C3/0347:	A600    	LDX $00        ; ...
C3/0349:	9B      	TXY            ; Index: 0
C3/034A:	C220    	REP #$20       ; 16-bit A
C3/034C:	B7E7    	LDA [$E7],Y    ; Tilemap ptr
C3/034E:	85EB    	STA $EB        ; Set position
C3/0350:	C8      	INY            ; Index +1
C3/0351:	C8      	INY            ; Index +1
C3/0352:	B7E7    	LDA [$E7],Y    ; Window size
C3/0354:	85E0    	STA $E0        ; Memorize it
C3/0356:	E220    	SEP #$20       ; 8-bit A
C3/0358:	85E2    	STA $E2        ; ...
C3/035A:	A97E    	LDA #$7E       ; Bank: 7E
C3/035C:	85ED    	STA $ED        ; Set ptr HB
C3/035E:	A600    	LDX $00        ; Clear X
C3/0360:	9B      	TXY            ; Clear Y...
C3/0361:	E210    	SEP #$10       ; 8-bit X, Y
C3/0363:	A6E0    	LDX $E0        ; Inner width
C3/0365:	A4E1    	LDY $E1        ; Inner height
C3/0367:	C210    	REP #$10       ; 16-bit X, Y
C3/0369:	86EF    	STX $EF        ; Set 16b width
C3/036B:	84F1    	STY $F1        ; Set 16b height
C3/036D:	C220    	REP #$20       ; 16-bit A
C3/036F:	207503  	JSR $0375      ; Draw window
C3/0372:	E220    	SEP #$20       ; 8-bit A
C3/0374:	60      	RTS

Draw a menu window
C3/0375:	20A303  	JSR $03A3      ; Draw top row
C3/0378:	A600    	LDX $00        ; Inner row: 1st
C3/037A:	A04000  	LDY #$0040     ; Skipped rows: 1
C3/037D:	84F3    	STY $F3        ; Init map index
C3/037F:	DA      	PHX            ; Save row number
C3/0380:	8A      	TXA            ; Move it to A
C3/0381:	290300  	AND #$0003     ; Get pattern row
C3/0384:	0A      	ASL A          ; Double it
C3/0385:	AA      	TAX            ; Index it
C3/0386:	FC9B03  	JSR ($039B,X)  ; Draw inner row
C3/0389:	A5F3    	LDA $F3        ; Tilemap index
C3/038B:	18      	CLC            ; Prepare ADC
C3/038C:	694000  	ADC #$0040     ; Go 1 row down
C3/038F:	85F3    	STA $F3        ; Save changes
C3/0391:	A8      	TAY            ; Index it
C3/0392:	FA      	PLX            ; Row number
C3/0393:	E8      	INX            ; Row number +1
C3/0394:	E4F1    	CPX $F1        ; At last row?
C3/0396:	D0E7    	BNE $037F      ; Loop if not
C3/0398:	4CBB03  	JMP $03BB      ; Draw last row

Jump table for the above
C3/039B:	D103    	; Pattern row 1 of 4
C3/039D:	DB03    	; Pattern row 2 of 4
C3/039F:	E803    	; Pattern row 3 of 4
C3/03A1:	F503    	; Pattern row 4 of 4

Draw window's upper row
C3/03A3:	A400    	LDY $00        ; Map index: 0
C3/03A5:	200804  	JSR $0408      ; Define pattern
C3/03A8:	AF499F7E	LDA $7E9F49    ; NW corner tile
C3/03AC:	85E3    	STA $E3        ; Set first tile
C3/03AE:	AF4B9F7E	LDA $7E9F4B    ; NE corner tile
C3/03B2:	85E5    	STA $E5        ; Set final tile
C3/03B4:	A22000  	LDX #$0020     ; Base tile index
C3/03B7:	86E0    	STX $E0        ; Memorize it
C3/03B9:	806D    	BRA $0428      ; Draw top row

Draw window's lower row
C3/03BB:	200804  	JSR $0408      ; Define pattern
C3/03BE:	AF4D9F7E	LDA $7E9F4D    ; SW corner tile
C3/03C2:	85E3    	STA $E3        ; Set first tile
C3/03C4:	AF4F9F7E	LDA $7E9F4F    ; SE corner tile
C3/03C8:	85E5    	STA $E5        ; Set final tile
C3/03CA:	A22400  	LDX #$0024     ; Base tile index
C3/03CD:	86E0    	STX $E0        ; Memorize it
C3/03CF:	8057    	BRA $0428      ; Draw bottom row

Draw inner window row, pattern part 1 of 4
C3/03D1:	200204  	JSR $0402      ; Define pattern
C3/03D4:	200E04  	JSR $040E      ; Get side tiles
C3/03D7:	64E0    	STZ $E0        ; Base tile index
C3/03D9:	804D    	BRA $0428      ; Draw inner row

Draw inner window row, pattern part 2 of 4
C3/03DB:	200204  	JSR $0402      ; Define pattern
C3/03DE:	201B04  	JSR $041B      ; Get side tiles
C3/03E1:	A20800  	LDX #$0008     ; Base tile index
C3/03E4:	86E0    	STX $E0        ; Memorize it
C3/03E6:	8040    	BRA $0428      ; Draw inner row

Draw inner window row, pattern part 3 of 4
C3/03E8:	200204  	JSR $0402      ; Define pattern
C3/03EB:	200E04  	JSR $040E      ; Get side tiles
C3/03EE:	A21000  	LDX #$0010     ; Base tile index
C3/03F1:	86E0    	STX $E0        ; Memorize it
C3/03F3:	8033    	BRA $0428      ; Draw inner row

Draw inner window row, pattern part 4 of 4
C3/03F5:	200204  	JSR $0402      ; Define pattern
C3/03F8:	201B04  	JSR $041B      ; Get side tiles
C3/03FB:	A21800  	LDX #$0018     ; Base tile index
C3/03FE:	86E0    	STX $E0        ; Memorize it
C3/0400:	8026    	BRA $0428      ; Draw inner row

Set pattern width for inner window tiles
C3/0402:	A20300  	LDX #$0003     ; Tiles: 4
C3/0405:	86F5    	STX $F5        ; Set pattern width
C3/0407:	60      	RTS

Set pattern width for top or bottom window border
C3/0408:	A20100  	LDX #$0001     ; Tiles: 2
C3/040B:	86F5    	STX $F5        ; Set pattern width
C3/040D:	60      	RTS

Get window side tiles for odd-numbered pattern row
C3/040E:	AF419F7E	LDA $7E9F41    ; Left border A
C3/0412:	85E3    	STA $E3        ; Set first tile
C3/0414:	AF439F7E	LDA $7E9F43    ; Right border A
C3/0418:	85E5    	STA $E5        ; Set final tile
C3/041A:	60      	RTS

Get window side tiles for even-numbered pattern row
C3/041B:	AF459F7E	LDA $7E9F45    ; Left border B
C3/041F:	85E3    	STA $E3        ; Set first tile
C3/0421:	AF479F7E	LDA $7E9F47    ; Right border B
C3/0425:	85E5    	STA $E5        ; Set final tile
C3/0427:	60      	RTS

Draw a row of window tiles
C3/0428:	A600    	LDX $00        ; Inner col: 1st
C3/042A:	A5E3    	LDA $E3        ; Leftmost tile
C3/042C:	97EB    	STA [$EB],Y    ; Add to tilemap
C3/042E:	C8      	INY            ; Map index +1
C3/042F:	C8      	INY            ; Map index +1
C3/0430:	DA      	PHX            ; Save column
C3/0431:	8A      	TXA            ; Move it to A
C3/0432:	25F5    	AND $F5        ; Stay in pattern
C3/0434:	0A      	ASL A          ; Double it
C3/0435:	18      	CLC            ; ...
C3/0436:	65E0    	ADC $E0        ; Add base index
C3/0438:	AA      	TAX            ; Index sum
C3/0439:	BF199F7E	LDA $7E9F19,X  ; Inner tile
C3/043D:	FA      	PLX            ; Column number
C3/043E:	E4EF    	CPX $EF        ; At last one?
C3/0440:	F007    	BEQ $0449      ; Branch if so
C3/0442:	97EB    	STA [$EB],Y    ; Add tile to map
C3/0444:	C8      	INY            ; Map index +1
C3/0445:	C8      	INY            ; Map index +1
C3/0446:	E8      	INX            ; Column +1
C3/0447:	80E7    	BRA $0430      ; Do next tile
C3/0449:	A5E5    	LDA $E5        ; Rightmost tile
C3/044B:	97EB    	STA [$EB],Y    ; Add to tilemap
C3/044D:	60      	RTS

Window tile numbers
C3/044E:	8001    	; Inner part 1,1
C3/0450:	8101    	; Inner part 1,2
C3/0452:	8201    	; Inner part 1,3
C3/0454:	8301    	; Inner part 1,4
C3/0456:	8401    	; Inner part 2,1
C3/0458:	8501    	; Inner part 2,2
C3/045A:	8601    	; Inner part 2,3
C3/045C:	8701    	; Inner part 2,4
C3/045E:	8801    	; Inner part 3,1
C3/0460:	8901    	; Inner part 3,2
C3/0462:	8A01    	; Inner part 3,3
C3/0464:	8B01    	; Inner part 3,4
C3/0466:	8C01    	; Inner part 4,1
C3/0468:	8D01    	; Inner part 4,2
C3/046A:	8E01    	; Inner part 4,3
C3/046C:	8F01    	; Inner part 4,4
C3/046E:	9101    	; Upper border A
C3/0470:	9201    	; Upper border B
C3/0472:	9901    	; Lower border A
C3/0474:	9A01    	; Lower border B
C3/0476:	9401    	; Left border A
C3/0478:	9501    	; Right border A
C3/047A:	9601    	; Left border B
C3/047C:	9701    	; Right border B
C3/047E:	9001    	; NW corner
C3/0480:	9301    	; NE corner
C3/0482:	9801    	; SW corner
C3/0484:	9B01    	; SE corner

Draw 3 digits (16-bit number)
C3/0486:	A00500  	LDY #$0005     ; Digits: 5
C3/0489:	84E0    	STY $E0        ; Set counter
C3/048B:	A00200  	LDY #$0002     ; Skipped: 2
C3/048E:	8037    	BRA $04C7      ; Draw text

Draw 4 digits
C3/0490:	A00500  	LDY #$0005     ; Digits: 5
C3/0493:	84E0    	STY $E0        ; Set counter
C3/0495:	A00100  	LDY #$0001     ; Skipped: 1
C3/0498:	802D    	BRA $04C7      ; Draw text

Draw 5 digits
C3/049A:	A00500  	LDY #$0005     ; Digits: 5
C3/049D:	84E0    	STY $E0        ; Set counter
C3/049F:	A400    	LDY $00        ; Skipped: 0
C3/04A1:	8024    	BRA $04C7      ; Draw text

Draw 8 digits
C3/04A3:	A00800  	LDY #$0008     ; Digits: 8
C3/04A6:	84E0    	STY $E0        ; Set counter
C3/04A8:	A400    	LDY $00        ; Skipped: 0
C3/04AA:	801B    	BRA $04C7      ; Draw text

Draw 7 digits
C3/04AC:	A00800  	LDY #$0008     ; Digits: 8
C3/04AF:	84E0    	STY $E0        ; Set counter
C3/04B1:	A00100  	LDY #$0001     ; Skipped: 1
C3/04B4:	8011    	BRA $04C7      ; Draw text

Draw 2 digits
C3/04B6:	A00300  	LDY #$0003     ; Digits: 3
C3/04B9:	84E0    	STY $E0        ; Set counter
C3/04BB:	A00100  	LDY #$0001     ; Skipped: 1
C3/04BE:	8007    	BRA $04C7      ; Draw text

Draw 3 digits (8-bit number)
C3/04C0:	A00300  	LDY #$0003     ; Digits: 3
C3/04C3:	84E0    	STY $E0        ; Set counter
C3/04C5:	A400    	LDY $00        ; Skipped: 0
C3/04C7:	86EB    	STX $EB        ; Set dst LBs
C3/04C9:	A97E    	LDA #$7E       ; Bank: 7E
C3/04CB:	85ED    	STA $ED        ; Set dst HB
C3/04CD:	BB      	TYX            ; Digit index
C3/04CE:	A400    	LDY $00        ; Map index: 0
C3/04D0:	B5F7    	LDA $F7,X      ; Digit char
C3/04D2:	97EB    	STA [$EB],Y    ; Add to tilemap
C3/04D4:	C8      	INY            ; Map index +1
C3/04D5:	A529    	LDA $29        ; Palette, etc.
C3/04D7:	97EB    	STA [$EB],Y    ; Set attributes
C3/04D9:	C8      	INY            ; Map index +1
C3/04DA:	E8      	INX            ; Digit index +1
C3/04DB:	E4E0    	CPX $E0        ; More digits?
C3/04DD:	D0F1    	BNE $04D0      ; Loop if so
C3/04DF:	60      	RTS

Convert 8-bit number into text, blank leading zeroes
C3/04E0:	20F904  	JSR $04F9      ; Turn into text
C3/04E3:	A400    	LDY $00        ; 1st: Hundreds
C3/04E5:	A20200  	LDX #$0002     ; Digits left: 2
C3/04E8:	B9F700  	LDA $00F7,Y    ; Digit char
C3/04EB:	C9B4    	CMP #$B4       ; Zero?
C3/04ED:	D009    	BNE $04F8      ; Exit if not
C3/04EF:	A9FF    	LDA #$FF       ; Space char
C3/04F1:	99F700  	STA $00F7,Y    ; Replace digit
C3/04F4:	C8      	INY            ; Point to next
C3/04F5:	CA      	DEX            ; One less left
C3/04F6:	D0F0    	BNE $04E8      ; Loop till last
C3/04F8:	60      	RTS

Convert 8-bit number into text, retain leading zeroes
C3/04F9:	85E0    	STA $E0        ; Save number
C3/04FB:	A903    	LDA #$03       ; Digits: 3
C3/04FD:	85E4    	STA $E4        ; Set counter
C3/04FF:	A400    	LDY $00        ; RAM index: 0
C3/0501:	BB      	TYX            ; ROM index: 0
C3/0502:	64E1    	STZ $E1        ; Digit: 0
C3/0504:	BF2B05C3	LDA $C3052B,X  ; Power of 10
C3/0508:	E8      	INX            ; ROM index +1
C3/0509:	85E3    	STA $E3        ; Save power
C3/050B:	A5E0    	LDA $E0        ; Revised number
C3/050D:	38      	SEC            ; Prepare SBC
C3/050E:	E5E3    	SBC $E3        ; Deduct power
C3/0510:	9006    	BCC $0518      ; Branch if < 0
C3/0512:	85E0    	STA $E0        ; Save changes
C3/0514:	E6E1    	INC $E1        ; Digit +1
C3/0516:	80F3    	BRA $050B      ; Loop
C3/0518:	18      	CLC            ; ...
C3/0519:	65ED    	ADC $ED        ; ...
C3/051B:	85F3    	STA $F3        ; ...
C3/051D:	A5E1    	LDA $E1        ; Digit
C3/051F:	18      	CLC            ; Prepare ADC
C3/0520:	69B4    	ADC #$B4       ; Turn into text
C3/0522:	99F700  	STA $00F7,Y    ; Set digit char
C3/0525:	C8      	INY            ; Point to next
C3/0526:	C6E4    	DEC $E4        ; One less left
C3/0528:	D0D8    	BNE $0502      ; Loop till last
C3/052A:	60      	RTS

Powers of ten for the above
C3/052B:	64      	; 100
C3/052C:	0A      	; 10
C3/052D:	01      	; 1

Convert 16-bit number into text, blank leading zeroes
C3/052E:	A905    	LDA #$05       ; Digits: 5
C3/0530:	85E0    	STA $E0        ; Set counter
C3/0532:	A400    	LDY $00        ; RAM index: 0
C3/0534:	BB      	TYX            ; ROM index: 0
C3/0535:	C220    	REP #$20       ; 16-bit A
C3/0537:	BF7805C3	LDA $C30578,X  ; Power of 10
C3/053B:	E8      	INX            ; ROM index +1
C3/053C:	E8      	INX            ; ROM index +1
C3/053D:	85ED    	STA $ED        ; Save power
C3/053F:	64EB    	STZ $EB        ; Digit: 0
C3/0541:	38      	SEC            ; Prepare SBC
C3/0542:	A5F3    	LDA $F3        ; Revised number
C3/0544:	E5ED    	SBC $ED        ; Deduct power
C3/0546:	9006    	BCC $054E      ; Branch if < 0
C3/0548:	85F3    	STA $F3        ; Save changes
C3/054A:	E6EB    	INC $EB        ; Digit +1
C3/054C:	80F3    	BRA $0541      ; Loop

Fork: Convert digit into text
C3/054E:	18      	CLC            ; ...
C3/054F:	65ED    	ADC $ED        ; ...
C3/0551:	85F3    	STA $F3        ; ...
C3/0553:	E220    	SEP #$20       ; 8-bit A
C3/0555:	A5EB    	LDA $EB        ; Digit
C3/0557:	18      	CLC            ; ...
C3/0558:	69B4    	ADC #$B4       ; Turn into text
C3/055A:	99F700  	STA $00F7,Y    ; Set digit char
C3/055D:	C8      	INY            ; RAM index +1
C3/055E:	C6E0    	DEC $E0        ; One less digit
C3/0560:	D0D3    	BNE $0535      ; Loop till last

Fork: Blank leading zeroes
C3/0562:	A400    	LDY $00        ; Index: 0
C3/0564:	A20400  	LDX #$0004     ; Digits: 4
C3/0567:	B9F700  	LDA $00F7,Y    ; Digit char
C3/056A:	C9B4    	CMP #$B4       ; Zero?
C3/056C:	D009    	BNE $0577      ; Exit if not
C3/056E:	A9FF    	LDA #$FF       ; Space char
C3/0570:	99F700  	STA $00F7,Y    ; Replace digit
C3/0573:	C8      	INY            ; Point to next
C3/0574:	CA      	DEX            ; One less left
C3/0575:	D0F0    	BNE $0567      ; Loop till last
C3/0577:	60      	RTS

Powers of ten for the above
C3/0578:	1027    	; 10000
C3/057A:	E803    	; 1000
C3/057C:	6400    	; 100
C3/057E:	0A00    	; 10
C3/0580:	0100    	; 1

Convert 24-bit number into text, blank leading zeroes
C3/0582:	64F4    	STZ $F4        ; Number HB: 0
C3/0584:	A908    	LDA #$08       ; Digits: 8
C3/0586:	85E0    	STA $E0        ; Set counter
C3/0588:	A400    	LDY $00        ; RAM index: 0
C3/058A:	BB      	TYX            ; ROM index: 0
C3/058B:	C220    	REP #$20       ; 16-bit A
C3/058D:	64EB    	STZ $EB        ; Digit: 0
C3/058F:	38      	SEC            ; Prepare SBC
C3/0590:	A5F1    	LDA $F1        ; Number LBs
C3/0592:	FFDE05C3	SBC $C305DE,X  ; Deduct power's
C3/0596:	85F1    	STA $F1        ; Save changes
C3/0598:	A5F3    	LDA $F3        ; Number HBs
C3/059A:	FFEE05C3	SBC $C305EE,X  ; Deduct power's
C3/059E:	85F3    	STA $F3        ; Save changes
C3/05A0:	9004    	BCC $05A6      ; Branch if < 0
C3/05A2:	E6EB    	INC $EB        ; Digit +1
C3/05A4:	80E9    	BRA $058F      ; Loop

Fork: Cancel subtraction and convert digit
C3/05A6:	A5F1    	LDA $F1        ; Number LBs
C3/05A8:	18      	CLC            ; ...
C3/05A9:	7FDE05C3	ADC $C305DE,X  ; Reverse SBC
C3/05AD:	85F1    	STA $F1        ; Save changes
C3/05AF:	A5F3    	LDA $F3        ; Number HBs
C3/05B1:	7FEE05C3	ADC $C305EE,X  ; Reverse SBC
C3/05B5:	85F3    	STA $F3        ; Save changes
C3/05B7:	E220    	SEP #$20       ; 8-bit A
C3/05B9:	A5EB    	LDA $EB        ; Digit
C3/05BB:	18      	CLC            ; Prepare ADC
C3/05BC:	69B4    	ADC #$B4       ; Turn into text
C3/05BE:	99F700  	STA $00F7,Y    ; Set digit char
C3/05C1:	C8      	INY            ; RAM index +1
C3/05C2:	E8      	INX            ; ROM index +1
C3/05C3:	E8      	INX            ; ROM index +1
C3/05C4:	C6E0    	DEC $E0        ; One less digit
C3/05C6:	D0C3    	BNE $058B      ; Loop till last

Fork: Blank leading zeroes
C3/05C8:	A400    	LDY $00        ; Index: 0
C3/05CA:	A20700  	LDX #$0007     ; Digits: 7
C3/05CD:	B9F700  	LDA $00F7,Y    ; Digit char
C3/05D0:	C9B4    	CMP #$B4       ; Zero?
C3/05D2:	D009    	BNE $05DD      ; Exit if not
C3/05D4:	A9FF    	LDA #$FF       ; Space char
C3/05D6:	99F700  	STA $00F7,Y    ; Replace digit
C3/05D9:	C8      	INY            ; Point to next
C3/05DA:	CA      	DEX            ; One less left
C3/05DB:	D0F0    	BNE $05CD      ; Loop till last
C3/05DD:	60      	RTS

Powers of ten, low bytes
C3/05DE:	8096    	; 10000000
C3/05E0:	4042    	; 1000000
C3/05E2:	A086    	; 100000
C3/05E4:	1027    	; 10000
C3/05E6:	E803    	; 1000
C3/05E8:	6400    	; 100
C3/05EA:	0A00    	; 10
C3/05EC:	0100    	; 1

Powers of ten, high bytes
C3/05EE:	9800    	; 10000000
C3/05F0:	0F00    	; 1000000
C3/05F2:	0100    	; 100000
C3/05F4:	0000    	; 10000
C3/05F6:	0000    	; 1000
C3/05F8:	0000    	; 100
C3/05FA:	0000    	; 10
C3/05FC:	0000    	; 1

Load navigation parameters for menu area
C3/05FE:	A9C3    	LDA #$C3       ; Bank: C3
C3/0600:	85ED    	STA $ED        ; Set src HB
C3/0602:	84EB    	STY $EB        ; Set src LBs
C3/0604:	A400    	LDY $00        ; Index: 0
C3/0606:	B7EB    	LDA [$EB],Y    ; Wrap flags
C3/0608:	8559    	STA $59        ; Save in RAM
C3/060A:	C8      	INY            ; Index +1
C3/060B:	C220    	REP #$20       ; 16-bit A
C3/060D:	6451    	STZ $51        ; See C3/06D5...
C3/060F:	B7EB    	LDA [$EB],Y    ; Initial spot
C3/0611:	854D    	STA $4D        ; Set cursor's
C3/0613:	C8      	INY            ; Index +1
C3/0614:	C8      	INY            ; Index +1
C3/0615:	B7EB    	LDA [$EB],Y    ; Rows, columns
C3/0617:	8553    	STA $53        ; Set boundaries
C3/0619:	644F    	STZ $4F        ; List col/row: 1
C3/061B:	E220    	SEP #$20       ; 8-bit A
C3/061D:	60      	RTS

Target party's leader
C3/061E:	7B      	TDC            ; Clear A
C3/061F:	A8      	TAY            ; Member: 1st
C3/0620:	98      	TYA            ; Member slot
C3/0621:	0A      	ASL A          ; Double it
C3/0622:	AA      	TAX            ; Index it
C3/0623:	B585    	LDA $85,X      ; Empty slot?
C3/0625:	D008    	BNE $062F      ; Exit if not
C3/0627:	E64E    	INC $4E        ; Cursor row +1
C3/0629:	C8      	INY            ; Member slot +1
C3/062A:	C00400  	CPY #$0004     ; Done all 4?
C3/062D:	D0F1    	BNE $0620      ; Loop if not
C3/062F:	60      	RTS

Set address to table of cursor coordinates
C3/0630:	84E7    	STY $E7        ; Set src LBs
C3/0632:	A9C3    	LDA #$C3       ; Bank: C3
C3/0634:	85E9    	STA $E9        ; Set src HB
C3/0636:	60      	RTS

Position cursor in party area of Lineup menu
C3/0637:	203006  	JSR $0630      ; Set source
C3/063A:	205006  	JSR $0650      ; Set list slot
C3/063D:	4CC506  	JMP $06C5      ; Set coords

Position cursor in unscrollable area
C3/0640:	203006  	JSR $0630      ; Set source
C3/0643:	207706  	JSR $0677      ; Set list slot
C3/0646:	807D    	BRA $06C5      ; Set coords

Position cursor in scrollable list
C3/0648:	203006  	JSR $0630      ; Set source
C3/064B:	209E06  	JSR $069E      ; Set list slot
C3/064E:	8075    	BRA $06C5      ; Set coords

Set cursor's slot position in party area of Lineup menu
C3/0650:	8B      	PHB            ; Save DB
C3/0651:	A900    	LDA #$00       ; Clear A
C3/0653:	48      	PHA            ; Put on stack
C3/0654:	AB      	PLB            ; Set DB to 0
C3/0655:	AF124200	LDA $004212    ; PPU status
C3/0659:	2940    	AND #$40       ; H-Blank?
C3/065B:	F0F8    	BEQ $0655      ; Loop if not
C3/065D:	A554    	LDA $54        ; Number of rows
C3/065F:	8D1B21  	STA $211B      ; Set matrix A LB
C3/0662:	9C1B21  	STZ $211B      ; Clear HB
C3/0665:	A54D    	LDA $4D        ; Cursor column
C3/0667:	8D1C21  	STA $211C      ; Set matrix B
C3/066A:	8D1C21  	STA $211C      ; ...
C3/066D:	AD3421  	LDA $2134      ; Product LB
C3/0670:	18      	CLC            ; Prepare ADC
C3/0671:	654E    	ADC $4E        ; Add cursor row
C3/0673:	854B    	STA $4B        ; Set cursor slot
C3/0675:	AB      	PLB            ; Restore DB
C3/0676:	60      	RTS

Set cursor's slot position in unscrollable area
C3/0677:	8B      	PHB            ; Save DB
C3/0678:	A900    	LDA #$00       ; Clear A
C3/067A:	48      	PHA            ; Put on stack
C3/067B:	AB      	PLB            ; Set DB to 0
C3/067C:	AF124200	LDA $004212    ; PPU status
C3/0680:	2940    	AND #$40       ; H-Blank?
C3/0682:	F0F8    	BEQ $067C      ; Loop if not
C3/0684:	A553    	LDA $53        ; Column count
C3/0686:	8D1B21  	STA $211B      ; Set matrix A LB
C3/0689:	9C1B21  	STZ $211B      ; Clear HB
C3/068C:	A54E    	LDA $4E        ; Cursor row
C3/068E:	8D1C21  	STA $211C      ; Set matrix B
C3/0691:	8D1C21  	STA $211C      ; ...
C3/0694:	AD3421  	LDA $2134      ; Product LB
C3/0697:	18      	CLC            ; Prepare ADC
C3/0698:	654D    	ADC $4D        ; Add cursor col
C3/069A:	854B    	STA $4B        ; Set cursor slot
C3/069C:	AB      	PLB            ; Restore DB
C3/069D:	60      	RTS

Set cursor's slot position in scrollable list
C3/069E:	8B      	PHB            ; Save DB
C3/069F:	A900    	LDA #$00       ; Clear A
C3/06A1:	48      	PHA            ; Put on stack
C3/06A2:	AB      	PLB            ; Set DB to 0
C3/06A3:	AF124200	LDA $004212    ; PPU status
C3/06A7:	2940    	AND #$40       ; H-Blank?
C3/06A9:	F0F8    	BEQ $06A3      ; Loop if not
C3/06AB:	A553    	LDA $53        ; Column count
C3/06AD:	8D1B21  	STA $211B      ; Set matrix A LB
C3/06B0:	9C1B21  	STZ $211B      ; Clear HB
C3/06B3:	A550    	LDA $50        ; List row
C3/06B5:	8D1C21  	STA $211C      ; Set matrix B
C3/06B8:	8D1C21  	STA $211C      ; ...
C3/06BB:	AD3421  	LDA $2134      ; Product LB
C3/06BE:	18      	CLC            ; Prepare ADC
C3/06BF:	654F    	ADC $4F        ; Add list column
C3/06C1:	854B    	STA $4B        ; Set cursor slot
C3/06C3:	AB      	PLB            ; Restore DB
C3/06C4:	60      	RTS

Set cursor's position in pixels
C3/06C5:	8B      	PHB            ; Save DB
C3/06C6:	A900    	LDA #$00       ; Zero A
C3/06C8:	48      	PHA            ; Put on stack
C3/06C9:	AB      	PLB            ; Set DB to 0
C3/06CA:	A553    	LDA $53        ; Column count
C3/06CC:	3A      	DEC A          ; Adjust value
C3/06CD:	C54D    	CMP $4D        ; In range now?
C3/06CF:	B00C    	BCS $06DD      ; Branch if so

Fork: Invalid column (unused)
C3/06D1:	A553    	LDA $53        ; ...
C3/06D3:	3A      	DEC A          ; ...
C3/06D4:	38      	SEC            ; Prepare SBC
C3/06D5:	E551    	SBC $51        ; Minus 0...
C3/06D7:	85E0    	STA $E0        ; Use col qty -1
C3/06D9:	85E2    	STA $E2        ; Use last column
C3/06DB:	8008    	BRA $06E5      ; Validate row

Fork: Valid column
C3/06DD:	A553    	LDA $53        ; Column count
C3/06DF:	85E0    	STA $E0        ; Memorize it
C3/06E1:	A54D    	LDA $4D        ; Cursor column
C3/06E3:	85E2    	STA $E2        ; Memorize it

Fork: Validate row
C3/06E5:	A554    	LDA $54        ; Number of rows
C3/06E7:	3A      	DEC A          ; Adjust value
C3/06E8:	C54E    	CMP $4E        ; In range now?
C3/06EA:	B00A    	BCS $06F6      ; Branch if so

Fork: Invalid row (unused)
C3/06EC:	A554    	LDA $54        ; ...
C3/06EE:	3A      	DEC A          ; ...
C3/06EF:	38      	SEC            ; Prepare SBC
C3/06F0:	E552    	SBC $52        ; Minus 0...
C3/06F2:	85E1    	STA $E1        ; Force last row
C3/06F4:	8004    	BRA $06FA      ; Skip 2 lines

Fork: Valid row
C3/06F6:	A54E    	LDA $4E        ; Cursor row
C3/06F8:	85E1    	STA $E1        ; Memorize it
C3/06FA:	AF124200	LDA $004212    ; PPU status
C3/06FE:	2940    	AND #$40       ; H-Blank?
C3/0700:	F0F8    	BEQ $06FA      ; Loop if not
C3/0702:	A5E0    	LDA $E0        ; Number of columns
C3/0704:	8D1B21  	STA $211B      ; Set matrix A LB
C3/0707:	9C1B21  	STZ $211B      ; Clear HB
C3/070A:	A5E1    	LDA $E1        ; Cursor row
C3/070C:	8D1C21  	STA $211C      ; Set matrix B
C3/070F:	8D1C21  	STA $211C      ; ...
C3/0712:	AD3421  	LDA $2134      ; Product LB
C3/0715:	18      	CLC            ; Prepare ADC
C3/0716:	65E2    	ADC $E2        ; Add column
C3/0718:	0A      	ASL A          ; Double it
C3/0719:	EB      	XBA            ; Switch to HB
C3/071A:	A500    	LDA $00        ; Clear it
C3/071C:	EB      	XBA            ; Switch to LB
C3/071D:	A8      	TAY            ; Index it
C3/071E:	B7E7    	LDA [$E7],Y    ; X position
C3/0720:	8555    	STA $55        ; Set cursor's
C3/0722:	6456    	STZ $56        ; Clear HB
C3/0724:	C8      	INY            ; Index +1
C3/0725:	B7E7    	LDA [$E7],Y    ; Y position
C3/0727:	8557    	STA $57        ; Set cursor's
C3/0729:	6458    	STZ $58        ; Clear HB
C3/072B:	AB      	PLB            ; Restore DB
C3/072C:	60      	RTS

Handle D-Pad for unscrollable list
C3/072D:	A50B    	LDA $0B        ; Semi-auto keys
C3/072F:	8908    	BIT #$08       ; Pushing up?
C3/0731:	F01D    	BEQ $0750      ; Branch if not
C3/0733:	A54E    	LDA $4E        ; On top row?
C3/0735:	D011    	BNE $0748      ; Go up if not
C3/0737:	A559    	LDA $59        ; Wrap flags
C3/0739:	2901    	AND #$01       ; No V-Wrap?
C3/073B:	D072    	BNE $07AF      ; Exit if so
C3/073D:	A554    	LDA $54        ; Bottom row
C3/073F:	3A      	DEC A          ; Adjust value
C3/0740:	854E    	STA $4E        ; Set cursor row
C3/0742:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/0745:	4CAF07  	JMP $07AF      ; Exit

Fork: Move cursor up
C3/0748:	C64E    	DEC $4E        ; Cursor row -1
C3/074A:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/074D:	4CAF07  	JMP $07AF      ; Exit

Fork: Handle down
C3/0750:	A50B    	LDA $0B        ; Semi-auto keys
C3/0752:	8904    	BIT #$04       ; Pushing down?
C3/0754:	F01D    	BEQ $0773      ; Branch if not
C3/0756:	A554    	LDA $54        ; Bottom row
C3/0758:	3A      	DEC A          ; Adjust value
C3/0759:	C54E    	CMP $4E        ; Cursor's there?
C3/075B:	D00E    	BNE $076B      ; Go down if not
C3/075D:	A559    	LDA $59        ; Wrap flags
C3/075F:	2901    	AND #$01       ; No V-Wrap?
C3/0761:	D04C    	BNE $07AF      ; Exit if so
C3/0763:	644E    	STZ $4E        ; Cursor row: 1
C3/0765:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/0768:	4CAF07  	JMP $07AF      ; Exit

Fork: Move cursor down
C3/076B:	E64E    	INC $4E        ; Cursor row +1
C3/076D:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/0770:	4CAF07  	JMP $07AF      ; Exit

Fork: Handle left
C3/0773:	A50B    	LDA $0B        ; Semi-auto keys
C3/0775:	8902    	BIT #$02       ; Pushing left?
C3/0777:	F019    	BEQ $0792      ; Branch if not
C3/0779:	A54D    	LDA $4D        ; On first column?
C3/077B:	D00E    	BNE $078B      ; Go left if not
C3/077D:	A559    	LDA $59        ; H-Wrap disabled?
C3/077F:	302E    	BMI $07AF      ; Exit if so
C3/0781:	A553    	LDA $53        ; Last column
C3/0783:	3A      	DEC A          ; Adjust value
C3/0784:	854D    	STA $4D        ; Set cursor column
C3/0786:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/0789:	8024    	BRA $07AF      ; Exit

Fork: Move cursor left
C3/078B:	C64D    	DEC $4D        ; Cursor column -1
C3/078D:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/0790:	801D    	BRA $07AF      ; Exit

Fork: Handle right
C3/0792:	A50B    	LDA $0B        ; Semi-auto keys
C3/0794:	8901    	BIT #$01       ; Pushing right?
C3/0796:	F017    	BEQ $07AF      ; Exit if not
C3/0798:	A553    	LDA $53        ; Last column
C3/079A:	3A      	DEC A          ; Adjust value
C3/079B:	C54D    	CMP $4D        ; Cursor's there?
C3/079D:	D00B    	BNE $07AA      ; Go right if not
C3/079F:	A559    	LDA $59        ; H-Wrap disabled?
C3/07A1:	300C    	BMI $07AF      ; Exit if so
C3/07A3:	644D    	STZ $4D        ; Cursor column: 1
C3/07A5:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/07A8:	8005    	BRA $07AF      ; Exit

Fork: Move cursor right
C3/07AA:	E64D    	INC $4D        ; Cursor column +1
C3/07AC:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/07AF:	60      	RTS

Queue movable cursor's OAM function
C3/07B0:	A901    	LDA #$01       ; Min slot: 8
C3/07B2:	A0B807  	LDY #$07B8     ; C3/07B8
C3/07B5:	4C7311  	JMP $1173      ; Queue OAM fn

Update movable cursor's sprite
C3/07B8:	AA      	TAX            ; Index mode
C3/07B9:	7CBC07  	JMP ($07BC,X)  ; Handle mode

Jump table for the above
C3/07BC:	C007    	; Initialize cursor
C3/07BE:	DC07    	; Sustain cursor

Mode 0: Initialize cursor
C3/07C0:	A62D    	LDX $2D        ; Queue index
C3/07C2:	C220    	REP #$20       ; 16-bit A
C3/07C4:	A98D08  	LDA #$088D     ; Anim table ptr
C3/07C7:	9DC932  	STA $32C9,X    ; Set sprite's
C3/07CA:	E220    	SEP #$20       ; 8-bit A
C3/07CC:	A9C3    	LDA #$C3       ; Bank: C3
C3/07CE:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/07D1:	200612  	JSR $1206      ; Set pose timer
C3/07D4:	FE4936  	INC $3649,X    ; Mode +1
C3/07D7:	A901    	LDA #$01       ; Pans with BG1
C3/07D9:	9D4A36  	STA $364A,X    ; Set sprite flags

Mode 1: Sustain cursor
C3/07DC:	A546    	LDA $46        ; Menu flags
C3/07DE:	2906    	AND #$06       ; Remove cursors?
C3/07E0:	F01B    	BEQ $07FD      ; Delete if so
C3/07E2:	A545    	LDA $45        ; Menu flags
C3/07E4:	8904    	BIT #$04       ; Hide cursor?
C3/07E6:	F013    	BEQ $07FB      ; Exit if so
C3/07E8:	A62D    	LDX $2D        ; Queue index
C3/07EA:	C220    	REP #$20       ; 16-bit A
C3/07EC:	A555    	LDA $55        ; Cursor's X
C3/07EE:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/07F1:	A557    	LDA $57        ; Cursor's Y
C3/07F3:	9D4A34  	STA $344A,X    ; Set sprite's
C3/07F6:	E220    	SEP #$20       ; ...
C3/07F8:	202112  	JSR $1221      ; Define OAM
C3/07FB:	38      	SEC            ; Set to requeue
C3/07FC:	60      	RTS            ; Exit
C3/07FD:	18      	CLC            ; Set to dequeue
C3/07FE:	60      	RTS

Update blinking cursor marking prior choice
C3/07FF:	AA      	TAX            ; Index mode
C3/0800:	7C0308  	JMP ($0803,X)  ; Handle mode

Jump table for the above
C3/0803:	0B08    	; Initialize cursor
C3/0805:	2B08    	; Sustain cursor V1
C3/0807:	0B08    	; Initialize cursor
C3/0809:	6708    	; Sustain cursor V2

Mode 0 or 2: Initialize cursor
C3/080B:	A62D    	LDX $2D        ; Queue index
C3/080D:	A901    	LDA #$01       ; Blinkers V1: On
C3/080F:	0446    	TSB $46        ; Set menu flag
C3/0811:	C220    	REP #$20       ; 16-bit A
C3/0813:	A99608  	LDA #$0896     ; Anim table ptr
C3/0816:	9DC932  	STA $32C9,X    ; Set sprite's
C3/0819:	E220    	SEP #$20       ; 8-bit A
C3/081B:	A9C3    	LDA #$C3       ; Bank: C3
C3/081D:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/0820:	200612  	JSR $1206      ; Set pose timer
C3/0823:	A901    	LDA #$01       ; Pans with BG1
C3/0825:	9D4A36  	STA $364A,X    ; Set sprite flags
C3/0828:	FE4936  	INC $3649,X    ; Mode +1

Mode 1: Sustain cursor not in party area of Lineup menu
C3/082B:	A546    	LDA $46        ; Menu flags
C3/082D:	8901    	BIT #$01       ; Remove blinkers?
C3/082F:	F034    	BEQ $0865      ; Delete if so
C3/0831:	A62D    	LDX $2D        ; Queue index
C3/0833:	C220    	REP #$20       ; 16-bit A
C3/0835:	A541    	LDA $41        ; List V-Speed
C3/0837:	49FFFF  	EOR #$FFFF     ; Invert it
C3/083A:	1A      	INC A          ; Add 1
C3/083B:	18      	CLC            ; Prepare ADC
C3/083C:	7D4A34  	ADC $344A,X    ; Add cursor's Y
C3/083F:	9D4A34  	STA $344A,X    ; Set cursor's Y
C3/0842:	E220    	SEP #$20       ; 8-bit A
C3/0844:	A546    	LDA $46        ; Menu flags
C3/0846:	29C0    	AND #$C0       ; Scrollable list?
C3/0848:	F016    	BEQ $0860      ; Display if not

Fork: Item menu
C3/084A:	A528    	LDA $28        ; Blinker's slot
C3/084C:	85E1    	STA $E1        ; Memorize it
C3/084E:	1A      	INC A          ; Get next slot
C3/084F:	85E0    	STA $E0        ; Memorize it
C3/0851:	A54A    	LDA $4A        ; Top onscreen slot
C3/0853:	18      	CLC            ; Prepare ADC
C3/0854:	6909    	ADC #$09       ; Get bottom slot
C3/0856:	C5E1    	CMP $E1        ; Blinker's below?
C3/0858:	9009    	BCC $0863      ; Blank if so
C3/085A:	A54A    	LDA $4A        ; Top onscreen slot
C3/085C:	C5E0    	CMP $E0        ; Blinker's above?
C3/085E:	B003    	BCS $0863      ; Blank if so
C3/0860:	202112  	JSR $1221      ; Define OAM
C3/0863:	38      	SEC            ; Set to requeue
C3/0864:	60      	RTS            ; Exit
C3/0865:	18      	CLC            ; Set to dequeue
C3/0866:	60      	RTS

Mode 3: Sustain cursor in party area of Lineup menu
C3/0867:	A546    	LDA $46        ; Menu flags
C3/0869:	8901    	BIT #$01       ; Remove blinkers?
C3/086B:	F0F8    	BEQ $0865      ; Delete if so
C3/086D:	A62D    	LDX $2D        ; Queue index
C3/086F:	C220    	REP #$20       ; 16-bit A
C3/0871:	A597    	LDA $97        ; Always 0...
C3/0873:	49FFFF  	EOR #$FFFF     ; Invert it
C3/0876:	1A      	INC A          ; Add 1
C3/0877:	18      	CLC            ; Prepare ADC
C3/0878:	7DCA33  	ADC $33CA,X    ; Add cursor's X
C3/087B:	9DCA33  	STA $33CA,X    ; Set cursor's X
C3/087E:	E220    	SEP #$20       ; 8-bit A
C3/0880:	BCCA33  	LDY $33CA,X    ; Cursor's X
C3/0883:	C00001  	CPY #$0100     ; Past east edge?
C3/0886:	B003    	BCS $088B      ; Blank if so
C3/0888:	202112  	JSR $1221      ; Define OAM
C3/088B:	38      	SEC            ; Set to requeue
C3/088C:	60      	RTS

Animation table for main cursor
C3/088D:	9008    	; Sprite 1
C3/088F:	FE      	; Freeze

OAM for hand cursor
C3/0890:	01      	; Tiles: 1
C3/0891:	8000    	; 16x16, X+0, Y+0
C3/0893:	003E    	; Tile 0, pal 7, prio 3

OAM for blanking cursor
C3/0895:	00      	; Tiles: 0

Animation table for blinking cursor
C3/0896:	9008    	; Show cursor
C3/0898:	02      	; Frames: 2
C3/0899:	9508    	; Hide cursor
C3/089B:	02      	; Frames: 2
C3/089C:	9008    	; Bogus...
C3/089E:	FF      	; Loop

Create a blinking cursor by every portrait
C3/089F:	7B      	TDC            ; Clear A
C3/08A0:	AA      	TAX            ; Member: 1st
C3/08A1:	B585    	LDA $85,X      ; Nobody here?
C3/08A3:	F024    	BEQ $08C9      ; Skip if so
C3/08A5:	DA      	PHX            ; Save index
C3/08A6:	A901    	LDA #$01       ; Min slot: 8
C3/08A8:	A0D108  	LDY #$08D1     ; C3/08D1
C3/08AB:	207311  	JSR $1173      ; Queue OAM fn
C3/08AE:	9B      	TXY            ; Queue index
C3/08AF:	FA      	PLX            ; Member index
C3/08B0:	A97E    	LDA #$7E       ; Bank: 7E
C3/08B2:	48      	PHA            ; Put on stack
C3/08B3:	AB      	PLB            ; Set DB to 7E
C3/08B4:	B585    	LDA $85,X      ; X position
C3/08B6:	99CA33  	STA $33CA,Y    ; Set cursor's
C3/08B9:	B586    	LDA $86,X      ; Y position
C3/08BB:	994A34  	STA $344A,Y    ; Set cursor's
C3/08BE:	7B      	TDC            ; Clear A
C3/08BF:	99CB33  	STA $33CB,Y    ; ...
C3/08C2:	994B34  	STA $344B,Y    ; ...
C3/08C5:	A900    	LDA #$00       ; ...
C3/08C7:	48      	PHA            ; Put on stack
C3/08C8:	AB      	PLB            ; Set DB to 0
C3/08C9:	E8      	INX            ; Char index +1
C3/08CA:	E8      	INX            ; Char index +1
C3/08CB:	E00800  	CPX #$0008     ; Done 4 chars?
C3/08CE:	D0D1    	BNE $08A1      ; Loop if not
C3/08D0:	60      	RTS

Update blinking cursor not marking a prior choice
C3/08D1:	AA      	TAX            ; Index mode
C3/08D2:	7CD508  	JMP ($08D5,X)  ; Handle mode

Jump table for the above
C3/08D5:	D908    	; Initialize cursor
C3/08D7:	F908    	; Sustain cursor

Mode 0: Initialize cursor
C3/08D9:	A62D    	LDX $2D        ; Queue index
C3/08DB:	A908    	LDA #$08       ; Blinkers V2: On
C3/08DD:	0446    	TSB $46        ; Set menu flag
C3/08DF:	C220    	REP #$20       ; 16-bit A
C3/08E1:	A99608  	LDA #$0896     ; Anim table ptr
C3/08E4:	9DC932  	STA $32C9,X    ; Set sprite's
C3/08E7:	E220    	SEP #$20       ; 8-bit A
C3/08E9:	A9C3    	LDA #$C3       ; Bank: C3
C3/08EB:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/08EE:	200612  	JSR $1206      ; Set pose timer
C3/08F1:	FE4936  	INC $3649,X    ; Mode +1
C3/08F4:	A901    	LDA #$01       ; Pans with BG1
C3/08F6:	9D4A36  	STA $364A,X    ; Set sprite flags

Mode 1: Sustain cursor
C3/08F9:	A546    	LDA $46        ; Menu flags
C3/08FB:	8908    	BIT #$08       ; Remove blinkers?
C3/08FD:	F007    	BEQ $0906      ; Delete if so
C3/08FF:	A62D    	LDX $2D        ; Queue index
C3/0901:	202112  	JSR $1221      ; Define OAM
C3/0904:	38      	SEC            ; Set to requeue
C3/0905:	60      	RTS            ; Exit
C3/0906:	18      	CLC            ; Set to dequeue
C3/0907:	60      	RTS

Update scrollbar animation index
C3/0908:	A9C0    	LDA #$C0       ; Flashing: 2-ways
C3/090A:	0446    	TSB $46        ; Initialize index
C3/090C:	A54A    	LDA $4A        ; At top of list?
C3/090E:	D004    	BNE $0914      ; Branch if not
C3/0910:	A940    	LDA #$40       ; Flashing: Down
C3/0912:	1446    	TRB $46        ; Update index
C3/0914:	A54A    	LDA $4A        ; Scroll position
C3/0916:	C55C    	CMP $5C        ; At very bottom?
C3/0918:	D004    	BNE $091E      ; Exit if not
C3/091A:	A980    	LDA #$80       ; Flashing: Up
C3/091C:	1446    	TRB $46        ; Update index
C3/091E:	60      	RTS

Create a scrollbar on right side of screen
C3/091F:	A903    	LDA #$03       ; Min slot: 24
C3/0921:	A04709  	LDY #$0947     ; C3/0947
C3/0924:	207311  	JSR $1173      ; Queue OAM fn
C3/0927:	C220    	REP #$20       ; 16-bit A
C3/0929:	A9E800  	LDA #$00E8     ; X: 232
C3/092C:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/0930:	E220    	SEP #$20       ; 8-bit A
C3/0932:	60      	RTS

Create a scrollbar in middle of screen
C3/0933:	A903    	LDA #$03       ; Min slot: 24
C3/0935:	A04709  	LDY #$0947     ; C3/0947
C3/0938:	207311  	JSR $1173      ; Queue OAM fn
C3/093B:	C220    	REP #$20       ; 16-bit A
C3/093D:	A97800  	LDA #$0078     ; X: 120
C3/0940:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/0944:	E220    	SEP #$20       ; 8-bit A
C3/0946:	60      	RTS

Update scrollbar
C3/0947:	AA      	TAX            ; Index mode
C3/0948:	7C4B09  	JMP ($094B,X)  ; Handle mode

Jump table for the above
C3/094B:	4F09    	; Initialize scrollbar
C3/094D:	6A09    	; Sustain scrollbar

Mode 0: Initialize scrollbar
C3/094F:	A62D    	LDX $2D        ; Queue index
C3/0951:	C220    	REP #$20       ; 16-bit A
C3/0953:	A9E309  	LDA #$09E3     ; C3/09E3
C3/0956:	9DC932  	STA $32C9,X    ; Init anim ptr
C3/0959:	E220    	SEP #$20       ; 8-bit A
C3/095B:	A9C3    	LDA #$C3       ; Bank: C3
C3/095D:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/0960:	FE4936  	INC $3649,X    ; Mode +1
C3/0963:	200612  	JSR $1206      ; Set pose timer
C3/0966:	A9C0    	LDA #$C0       ; Flash: Both ways
C3/0968:	0446    	TSB $46        ; Init anim index

Mode 1: Sustain scrollbar
C3/096A:	A546    	LDA $46        ; Menu flags
C3/096C:	29C0    	AND #$C0       ; Hide scrollbar?
C3/096E:	F069    	BEQ $09D9      ; Delete if so
C3/0970:	A62D    	LDX $2D        ; Queue index
C3/0972:	200809  	JSR $0908      ; Set anim index
C3/0975:	AF124200	LDA $004212    ; PPU status
C3/0979:	2940    	AND #$40       ; H-Blank?
C3/097B:	F0F8    	BEQ $0975      ; Loop if not
C3/097D:	BD4A35  	LDA $354A,X    ; V-Speed LB
C3/0980:	8F1B2100	STA $00211B    ; Set matrix A LB
C3/0984:	BD4B35  	LDA $354B,X    ; V-Speed HB
C3/0987:	8F1B2100	STA $00211B    ; Set matrix A HB
C3/098B:	A54A    	LDA $4A        ; Scroll position
C3/098D:	8F1C2100	STA $00211C    ; Set matrix B
C3/0991:	8F1C2100	STA $00211C    ; ...
C3/0995:	A54A    	LDA $4A        ; Scroll position
C3/0997:	3011    	BMI $09AA      ; Branch if 128+
C3/0999:	7B      	TDC            ; Clear A
C3/099A:	AF352100	LDA $002135    ; Product MB
C3/099E:	C221    	REP #$21       ; 16-bit A; C-
C3/09A0:	7DCA34  	ADC $34CA,X    ; Add base Y
C3/09A3:	9D4A34  	STA $344A,X    ; Set bar's Y
C3/09A6:	E220    	SEP #$20       ; 8-bit A
C3/09A8:	8013    	BRA $09BD      ; Skip 128+ case
C3/09AA:	7B      	TDC            ; Clear A
C3/09AB:	AF352100	LDA $002135    ; Product MB
C3/09AF:	C221    	REP #$21       ; 16-bit A; C-
C3/09B1:	697000  	ADC #$0070     ; Add 112
C3/09B4:	18      	CLC            ; ...
C3/09B5:	7DCA34  	ADC $34CA,X    ; Add base Y
C3/09B8:	9D4A34  	STA $344A,X    ; Set bar's Y
C3/09BB:	E220    	SEP #$20       ; 8-bit A
C3/09BD:	7B      	TDC            ; Clear A
C3/09BE:	A546    	LDA $46        ; Menu flags
C3/09C0:	29C0    	AND #$C0       ; Anim index
C3/09C2:	4A      	LSR A          ; Put in b5-b6
C3/09C3:	4A      	LSR A          ; Put in b4-b5
C3/09C4:	4A      	LSR A          ; Put in b3-b4
C3/09C5:	4A      	LSR A          ; Put in b2-b3
C3/09C6:	4A      	LSR A          ; Put in b1-b2
C3/09C7:	9B      	TXY            ; Queue index
C3/09C8:	AA      	TAX            ; Anim index
C3/09C9:	C220    	REP #$20       ; 16-bit A
C3/09CB:	BFDB09C3	LDA $C309DB,X  ; Anim pointer
C3/09CF:	99C932  	STA $32C9,Y    ; Set sprite's
C3/09D2:	E220    	SEP #$20       ; ...
C3/09D4:	202112  	JSR $1221      ; Define OAM
C3/09D7:	38      	SEC            ; Set to requeue
C3/09D8:	60      	RTS            ; Exit
C3/09D9:	18      	CLC            ; Set to dequeue
C3/09DA:	60      	RTS

Pointers to scrollbar animation tables
C3/09DB:	E309    	; Bogus...
C3/09DD:	EC09    	; Flashing up
C3/09DF:	F509    	; Flashing down
C3/09E1:	E309    	; Flashing both ways

Animation table for scrollbar flashing both ways
C3/09E3:	FE09    	; Flash neither
C3/09E5:	10      	; Frames: 16
C3/09E6:	070A    	; Flash both
C3/09E8:	10      	; Frames: 16
C3/09E9:	FE09    	; Bogus...
C3/09EB:	FF      	; Loop

Animation table for scrollbar pointing up
C3/09EC:	FE09    	; Flash neither
C3/09EE:	10      	; Frames: 16
C3/09EF:	100A    	; Flash highest
C3/09F1:	10      	; Frames: 16
C3/09F2:	FE09    	; Bogus...
C3/09F4:	FF      	; Loop

Animation table for scrollbar pointing down
C3/09F5:	FE09    	; Flash neither
C3/09F7:	10      	; Frames: 16
C3/09F8:	190A    	; Flash lowest
C3/09FA:	10      	; Frames: 16
C3/09FB:	FE09    	; Bogus...
C3/09FD:	FF      	; Loop

OAM for non-flashing scrollbar
C3/09FE:	02      	; Tiles: 2
C3/09FF:	0000023E	; ^: White
C3/0A03:	000802BE	; v: White

OAM for scrollbar flashing both ways
C3/0A07:	02      	; Tiles: 2
C3/0A08:	0000123E	; ^: Black
C3/0A0C:	000812BE	; v: Black

OAM for scrollbar pointing up
C3/0A10:	02      	; Tiles: 2
C3/0A11:	0000123E	; ^: Black
C3/0A15:	000802BE	; v: White

OAM for scrollbar pointing down
C3/0A19:	02      	; Tiles: 2
C3/0A1A:	0000023E	; ^: White
C3/0A1E:	000812BE	; v: Black

Create portrait for member 1
C3/0A22:	A903    	LDA #$03       ; Min slot: 24
C3/0A24:	A0120B  	LDY #$0B12     ; C3/0B12
C3/0A27:	207311  	JSR $1173      ; Queue OAM fn
C3/0A2A:	8A      	TXA            ; Queue index
C3/0A2B:	8560    	STA $60        ; Set sprite's
C3/0A2D:	8B      	PHB            ; Save DB
C3/0A2E:	A97E    	LDA #$7E       ; Bank: 7E
C3/0A30:	48      	PHA            ; Put on stack
C3/0A31:	AB      	PLB            ; Set DB to 7E
C3/0A32:	A400    	LDY $00        ; Member slot: 1
C3/0A34:	20F10A  	JSR $0AF1      ; Set base X loc
C3/0A37:	A400    	LDY $00        ; Face slot: 1
C3/0A39:	20CC0A  	JSR $0ACC      ; Load anim ptr
C3/0A3C:	C220    	REP #$20       ; 16-bit A
C3/0A3E:	A91500  	LDA #$0015     ; Base Y: 21
C3/0A41:	9D4A34  	STA $344A,X    ; Set sprite's
C3/0A44:	E220    	SEP #$20       ; 8-bit A
C3/0A46:	200612  	JSR $1206      ; Set pose timer
C3/0A49:	AB      	PLB            ; Restore DB
C3/0A4A:	60      	RTS

Create portrait for member 2
C3/0A4B:	A903    	LDA #$03       ; Min slot: 24
C3/0A4D:	A0120B  	LDY #$0B12     ; C3/0B12
C3/0A50:	207311  	JSR $1173      ; Queue OAM fn
C3/0A53:	8A      	TXA            ; Queue index
C3/0A54:	8561    	STA $61        ; Set sprite's
C3/0A56:	8B      	PHB            ; Save DB
C3/0A57:	A97E    	LDA #$7E       ; Bank: 7E
C3/0A59:	48      	PHA            ; Put on stack
C3/0A5A:	AB      	PLB            ; Set DB to 7E
C3/0A5B:	A00100  	LDY #$0001     ; Member slot: 2
C3/0A5E:	20F10A  	JSR $0AF1      ; Set base X loc
C3/0A61:	A00100  	LDY #$0001     ; Face slot: 2
C3/0A64:	20CC0A  	JSR $0ACC      ; Load anim ptr
C3/0A67:	C220    	REP #$20       ; 16-bit A
C3/0A69:	A94500  	LDA #$0045     ; Base Y: 69
C3/0A6C:	9D4A34  	STA $344A,X    ; Set sprite's
C3/0A6F:	E220    	SEP #$20       ; 8-bit A
C3/0A71:	200612  	JSR $1206      ; Set pose timer
C3/0A74:	AB      	PLB            ; Restore DB
C3/0A75:	60      	RTS

Create portrait for member 3
C3/0A76:	A903    	LDA #$03       ; Min slot: 24
C3/0A78:	A0120B  	LDY #$0B12     ; C3/0B12
C3/0A7B:	207311  	JSR $1173      ; Queue OAM fn
C3/0A7E:	8A      	TXA            ; Queue index
C3/0A7F:	8562    	STA $62        ; Set sprite's
C3/0A81:	8B      	PHB            ; Save DB
C3/0A82:	A97E    	LDA #$7E       ; Bank: 7E
C3/0A84:	48      	PHA            ; Put on stack
C3/0A85:	AB      	PLB            ; Set DB to 7E
C3/0A86:	A00200  	LDY #$0002     ; Member slot: 3
C3/0A89:	20F10A  	JSR $0AF1      ; Set base X loc
C3/0A8C:	A00200  	LDY #$0002     ; Face slot: 3
C3/0A8F:	20CC0A  	JSR $0ACC      ; Load anim ptr
C3/0A92:	C220    	REP #$20       ; 16-bit A
C3/0A94:	A97500  	LDA #$0075     ; Base Y: 117
C3/0A97:	9D4A34  	STA $344A,X    ; Set sprite's
C3/0A9A:	E220    	SEP #$20       ; 8-bit A
C3/0A9C:	200612  	JSR $1206      ; Set pose timer
C3/0A9F:	AB      	PLB            ; Restore DB
C3/0AA0:	60      	RTS

Create portrait for member 4
C3/0AA1:	A903    	LDA #$03       ; Min slot: 24
C3/0AA3:	A0120B  	LDY #$0B12     ; C3/0B12
C3/0AA6:	207311  	JSR $1173      ; Queue OAM fn
C3/0AA9:	8A      	TXA            ; Queue index
C3/0AAA:	8563    	STA $63        ; Set sprite's
C3/0AAC:	8B      	PHB            ; Save DB
C3/0AAD:	A97E    	LDA #$7E       ; Bank: 7E
C3/0AAF:	48      	PHA            ; Put on stack
C3/0AB0:	AB      	PLB            ; Set DB to 7E
C3/0AB1:	A00300  	LDY #$0003     ; Member slot: 4
C3/0AB4:	20F10A  	JSR $0AF1      ; Set base X loc
C3/0AB7:	A00300  	LDY #$0003     ; Face slot: 4
C3/0ABA:	20CC0A  	JSR $0ACC      ; Load anim ptr
C3/0ABD:	C220    	REP #$20       ; 16-bit A
C3/0ABF:	A9A500  	LDA #$00A5     ; Base Y: 165
C3/0AC2:	9D4A34  	STA $344A,X    ; Set sprite's
C3/0AC5:	E220    	SEP #$20       ; 8-bit A
C3/0AC7:	200612  	JSR $1206      ; Set pose timer
C3/0ACA:	AB      	PLB            ; Restore DB
C3/0ACB:	60      	RTS

Load pointer to animation table for portrait
C3/0ACC:	DA      	PHX            ; Save index
C3/0ACD:	DA      	PHX            ; Save index
C3/0ACE:	BB      	TYX            ; Member slot
C3/0ACF:	B575    	LDA $75,X      ; Party info
C3/0AD1:	2918    	AND #$18       ; Roster slot
C3/0AD3:	4A      	LSR A          ; Put in b2-b3
C3/0AD4:	4A      	LSR A          ; Put in b1-b2
C3/0AD5:	AA      	TAX            ; Index it
C3/0AD6:	C220    	REP #$20       ; 16-bit A
C3/0AD8:	BFE90AC3	LDA $C30AE9,X  ; Anim table ptr
C3/0ADC:	7A      	PLY            ; Queue index
C3/0ADD:	99C932  	STA $32C9,Y    ; Set ptr LBs
C3/0AE0:	E220    	SEP #$20       ; 8-bit A
C3/0AE2:	A9C3    	LDA #$C3       ; Bank: C3
C3/0AE4:	99CA35  	STA $35CA,Y    ; Set ptr HB
C3/0AE7:	FA      	PLX            ; Queue index
C3/0AE8:	60      	RTS

Pointers to portrait animation tables
C3/0AE9:	8C0B    	; Portrait A
C3/0AEB:	C40B    	; Portrait B
C3/0AED:	FC0B    	; Portrait C
C3/0AEF:	340C    	; Portrait D

Set portrait's base X position based on actor's row
C3/0AF1:	DA      	PHX            ; Queue index
C3/0AF2:	BB      	TYX            ; Member slot
C3/0AF3:	A902    	LDA #$02       ; Portrait bit
C3/0AF5:	2445    	BIT $45        ; Ignore row?
C3/0AF7:	D006    	BNE $0AFF      ; Branch if so
C3/0AF9:	B575    	LDA $75,X      ; Party info
C3/0AFB:	8920    	BIT #$20       ; In back row?
C3/0AFD:	F007    	BEQ $0B06      ; Branch if not
C3/0AFF:	C220    	REP #$20       ; 16-bit A
C3/0B01:	A91A00  	LDA #$001A     ; Base X: 26
C3/0B04:	8005    	BRA $0B0B      ; Skip 2 lines
C3/0B06:	C220    	REP #$20       ; 16-bit A
C3/0B08:	A90E00  	LDA #$000E     ; Base X: 15
C3/0B0B:	FA      	PLX            ; Queue index
C3/0B0C:	9DCA33  	STA $33CA,X    ; Set sprite's X
C3/0B0F:	E220    	SEP #$20       ; 8-bit A
C3/0B11:	60      	RTS

Update actor portrait
C3/0B12:	AA      	TAX            ; Index mode
C3/0B13:	7C160B  	JMP ($0B16,X)  ; Handle mode

Jump table for the above
C3/0B16:	200B    	; Set to pan with BG1
C3/0B18:	2A0B    	; Sustain portrait
C3/0B1A:	380B    	; Set to shift right
C3/0B1C:	4C0B    	; Set to shift left
C3/0B1E:	5E0B    	; Shift left or right

Mode 0: Set to pan with BG1
C3/0B20:	A62D    	LDX $2D        ; Queue index
C3/0B22:	FE4936  	INC $3649,X    ; Mode +1
C3/0B25:	A901    	LDA #$01       ; Pans with BG1
C3/0B27:	9D4A36  	STA $364A,X    ; Set sprite flags

Mode 1: Sustain portrait
C3/0B2A:	A62D    	LDX $2D        ; Queue index
C3/0B2C:	BDC935  	LDA $35C9,X    ; Hide portrait?
C3/0B2F:	3005    	BMI $0B36      ; Delete if so
C3/0B31:	202112  	JSR $1221      ; Define OAM
C3/0B34:	38      	SEC            ; Set to requeue
C3/0B35:	60      	RTS            ; Exit
C3/0B36:	18      	CLC            ; Set to dequeue
C3/0B37:	60      	RTS

Mode 2: Set to shift right
C3/0B38:	A62D    	LDX $2D        ; Queue index
C3/0B3A:	C220    	REP #$20       ; 16-bit A
C3/0B3C:	A90100  	LDA #$0001     ; H-Speed: 1
C3/0B3F:	9DCA34  	STA $34CA,X    ; Set sprite's
C3/0B42:	A90C00  	LDA #$000C     ; Frames: 12
C3/0B45:	9D4933  	STA $3349,X    ; Set shift timer
C3/0B48:	E220    	SEP #$20       ; 8-bit A
C3/0B4A:	8012    	BRA $0B5E      ; Shift once

Mode 3: Set to shift left
C3/0B4C:	A62D    	LDX $2D        ; Queue index
C3/0B4E:	C220    	REP #$20       ; 16-bit A
C3/0B50:	A9FFFF  	LDA #$FFFF     ; H-Speed: -1
C3/0B53:	9DCA34  	STA $34CA,X    ; Set sprite's
C3/0B56:	A90C00  	LDA #$000C     ; Frames: 12
C3/0B59:	9D4933  	STA $3349,X    ; Set shift timer
C3/0B5C:	E220    	SEP #$20       ; 8-bit A

Mode 4: Shift left or right
C3/0B5E:	A62D    	LDX $2D        ; Queue index
C3/0B60:	A904    	LDA #$04       ; Mode: 4
C3/0B62:	9D4936  	STA $3649,X    ; Set sprite's
C3/0B65:	C220    	REP #$20       ; 16-bit A
C3/0B67:	BD4933  	LDA $3349,X    ; Timer expired?
C3/0B6A:	F014    	BEQ $0B80      ; Freeze if so
C3/0B6C:	BDCA34  	LDA $34CA,X    ; H-Speed
C3/0B6F:	18      	CLC            ; Prepare ADC
C3/0B70:	7DCA33  	ADC $33CA,X    ; Add base X
C3/0B73:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/0B76:	DE4933  	DEC $3349,X    ; Timer -1
C3/0B79:	E220    	SEP #$20       ; ...
C3/0B7B:	202112  	JSR $1221      ; Define OAM
C3/0B7E:	38      	SEC            ; Set to requeue
C3/0B7F:	60      	RTS

Fork: Set to stop moving
C3/0B80:	E220    	SEP #$20       ; 8-bit A
C3/0B82:	A901    	LDA #$01       ; Mode: 1
C3/0B84:	9D4936  	STA $3649,X    ; Set sprite's
C3/0B87:	202112  	JSR $1221      ; Define OAM
C3/0B8A:	38      	SEC            ; Set to requeue
C3/0B8B:	60      	RTS

Animation table for portrait A
C3/0B8C:	8F0B    	; Show portrait
C3/0B8E:	FE      	; Freeze

OAM for portrait A
C3/0B8F:	0D      	; Tiles: 13
C3/0B90:	80006020	; Tile 1
C3/0B94:	90006220	; Tile 2
C3/0B98:	80106420	; Tile 3
C3/0B9C:	90106620	; Tile 4
C3/0BA0:	20006820	; Tile 5
C3/0BA4:	20086920	; Tile 6
C3/0BA8:	20106A20	; Tile 7
C3/0BAC:	20186B20	; Tile 8
C3/0BB0:	20206C20	; Tile 9
C3/0BB4:	00206D20	; Tile 10
C3/0BB8:	08206E20	; Tile 11
C3/0BBC:	10206F20	; Tile 12
C3/0BC0:	18207820	; Tile 13

Animation table for portrait B
C3/0BC4:	C70B    	; Show portrait
C3/0BC6:	FE      	; Freeze

OAM for portrait B
C3/0BC7:	0D      	; Tiles: 13
C3/0BC8:	80008022	; Tile 1
C3/0BCC:	90008222	; Tile 2
C3/0BD0:	80108422	; Tile 3
C3/0BD4:	90108622	; Tile 4
C3/0BD8:	20008822	; Tile 5
C3/0BDC:	20088922	; Tile 6
C3/0BE0:	20108A22	; Tile 7
C3/0BE4:	20188B22	; Tile 8
C3/0BE8:	20208C22	; Tile 9
C3/0BEC:	00208D22	; Tile 10
C3/0BF0:	08208E22	; Tile 11
C3/0BF4:	10208F22	; Tile 12
C3/0BF8:	18209822	; Tile 13

Animation table for portrait C
C3/0BFC:	FF0B    	; Show portrait
C3/0BFE:	FE      	; Freeze

OAM for portrait C
C3/0BFF:	0D      	; Tiles: 13
C3/0C00:	8000A024	; Tile 1
C3/0C04:	9000A224	; Tile 2
C3/0C08:	8010A424	; Tile 3
C3/0C0C:	9010A624	; Tile 4
C3/0C10:	2000A824	; Tile 5
C3/0C14:	2008A924	; Tile 6
C3/0C18:	2010AA24	; Tile 7
C3/0C1C:	2018AB24	; Tile 8
C3/0C20:	2020AC24	; Tile 9
C3/0C24:	0020AD24	; Tile 10
C3/0C28:	0820AE24	; Tile 11
C3/0C2C:	1020AF24	; Tile 12
C3/0C30:	1820B824	; Tile 13

Animation table for portrait D
C3/0C34:	370C    	; Show portrait
C3/0C36:	FE      	; Freeze

OAM for portrait D
C3/0C37:	0D      	; Tiles: 13
C3/0C38:	8000C026	; Tile 1
C3/0C3C:	9000C226	; Tile 2
C3/0C40:	8010C426	; Tile 3
C3/0C44:	9010C626	; Tile 4
C3/0C48:	2000C826	; Tile 5
C3/0C4C:	2008C926	; Tile 6
C3/0C50:	2010CA26	; Tile 7
C3/0C54:	2018CB26	; Tile 8
C3/0C58:	2020CC26	; Tile 9
C3/0C5C:	0020CD26	; Tile 10
C3/0C60:	0820CE26	; Tile 11
C3/0C64:	1020CF26	; Tile 12
C3/0C68:	1820D826	; Tile 13

Draw member's level, HP, and MP
C3/0C6C:	86EF    	STX $EF        ; Pos tbl ptr LBs
C3/0C6E:	A9C3    	LDA #$C3       ; Bank: C3
C3/0C70:	85F1    	STA $F1        ; Set ptr HB
C3/0C72:	A667    	LDX $67        ; Actor address
C3/0C74:	BD0800  	LDA $0008,X    ; Level
C3/0C77:	20E004  	JSR $04E0      ; Turn into text
C3/0C7A:	C220    	REP #$20       ; 16-bit A
C3/0C7C:	A7EF    	LDA [$EF]      ; Tilemap ptr
C3/0C7E:	AA      	TAX            ; Move it to X
C3/0C7F:	E220    	SEP #$20       ; 8-bit A
C3/0C81:	20B604  	JSR $04B6      ; Draw level
C3/0C84:	A667    	LDX $67        ; Actor address
C3/0C86:	BD0B00  	LDA $000B,X    ; Max HP LB
C3/0C89:	85F3    	STA $F3        ; Memorize it
C3/0C8B:	BD0C00  	LDA $000C,X    ; Max HP HB
C3/0C8E:	85F4    	STA $F4        ; Memorize it
C3/0C90:	20650D  	JSR $0D65      ; Add gear bonus
C3/0C93:	20920D  	JSR $0D92      ; Cap at 9999
C3/0C96:	202E05  	JSR $052E      ; Turn into text
C3/0C99:	A00400  	LDY #$0004     ; Map ptr index
C3/0C9C:	20210D  	JSR $0D21      ; Draw max HP
C3/0C9F:	A467    	LDY $67        ; Actor address
C3/0CA1:	209A2B  	JSR $2B9A      ; Truncate HP
C3/0CA4:	B90900  	LDA $0009,Y    ; HP LB
C3/0CA7:	85F3    	STA $F3        ; Memorize it
C3/0CA9:	B90A00  	LDA $000A,Y    ; HP HB
C3/0CAC:	85F4    	STA $F4        ; Memorize it
C3/0CAE:	202E05  	JSR $052E      ; Turn into text
C3/0CB1:	A00200  	LDY #$0002     ; Map ptr index
C3/0CB4:	20210D  	JSR $0D21      ; Draw HP
C3/0CB7:	202B0D  	JSR $0D2B      ; Can use magic?
C3/0CBA:	9033    	BCC $0CEF      ; Hide MP if not
C3/0CBC:	A667    	LDX $67        ; Actor address
C3/0CBE:	BD0F00  	LDA $000F,X    ; Max MP LB
C3/0CC1:	85F3    	STA $F3        ; Memorize it
C3/0CC3:	BD1000  	LDA $0010,X    ; Max MP HB
C3/0CC6:	85F4    	STA $F4        ; Memorize it
C3/0CC8:	20650D  	JSR $0D65      ; Add gear bonus
C3/0CCB:	209F0D  	JSR $0D9F      ; Cap at 999
C3/0CCE:	202E05  	JSR $052E      ; Turn into text
C3/0CD1:	A00800  	LDY #$0008     ; Map ptr index
C3/0CD4:	20210D  	JSR $0D21      ; Draw max MP
C3/0CD7:	A467    	LDY $67        ; Actor address
C3/0CD9:	20BC2B  	JSR $2BBC      ; Truncate MP
C3/0CDC:	B90D00  	LDA $000D,Y    ; MP LB
C3/0CDF:	85F3    	STA $F3        ; Memorize it
C3/0CE1:	B90E00  	LDA $000E,Y    ; MP HB
C3/0CE4:	85F4    	STA $F4        ; Memorize it
C3/0CE6:	202E05  	JSR $052E      ; Turn into text
C3/0CE9:	A00600  	LDY #$0006     ; Map ptr index
C3/0CEC:	4C210D  	JMP $0D21      ; Draw MP

Fork: Hide MP
C3/0CEF:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/0CF2:	8E8121  	STX $2181      ; Set WRAM LBs
C3/0CF5:	C220    	REP #$20       ; 16-bit A
C3/0CF7:	A00600  	LDY #$0006     ; Point to MP ptr
C3/0CFA:	B7EF    	LDA [$EF],Y    ; Tilemap ptr
C3/0CFC:	38      	SEC            ; Prepare SBC
C3/0CFD:	E90600  	SBC #$0006     ; Point to "MP"
C3/0D00:	8F899E7E	STA $7E9E89    ; Set position
C3/0D04:	E220    	SEP #$20       ; 8-bit A
C3/0D06:	A20C00  	LDX #$000C     ; Letters: 12
C3/0D09:	A9FF    	LDA #$FF       ; Space char
C3/0D0B:	8D8021  	STA $2180      ; Add to string
C3/0D0E:	CA      	DEX            ; One less left
C3/0D0F:	D0FA    	BNE $0D0B      ; Loop till last
C3/0D11:	9C8021  	STZ $2180      ; End string
C3/0D14:	A0899E  	LDY #$9E89     ; 7E/9E89
C3/0D17:	84E7    	STY $E7        ; Set src LBs
C3/0D19:	A97E    	LDA #$7E       ; Bank: 7E
C3/0D1B:	85E9    	STA $E9        ; Set src HB
C3/0D1D:	20FF02  	JSR $02FF      ; Draw 12 spaces
C3/0D20:	60      	RTS

Draw member's current or max HP or MP
C3/0D21:	C220    	REP #$20       ; 16-bit A
C3/0D23:	B7EF    	LDA [$EF],Y    ; Tilemap ptr
C3/0D25:	AA      	TAX            ; Move it to X
C3/0D26:	E220    	SEP #$20       ; 8-bit A
C3/0D28:	4C9004  	JMP $0490      ; Draw 4 digits

Determine whether actor can use magic
C3/0D2B:	AD691A  	LDA $1A69      ; Espers LB
C3/0D2E:	0D6A1A  	ORA $1A6A      ; Add byte 2
C3/0D31:	0D6B1A  	ORA $1A6B      ; Add byte 3
C3/0D34:	0D6C1A  	ORA $1A6C      ; Add byte 4
C3/0D37:	D02A    	BNE $0D63      ; OK if got any
C3/0D39:	A667    	LDX $67        ; Actor's address
C3/0D3B:	7B      	TDC            ; Clear A
C3/0D3C:	BD0000  	LDA $0000,X    ; Actor
C3/0D3F:	C90C    	CMP #$0C       ; Gogo?
C3/0D41:	F020    	BEQ $0D63      ; Allow if so
C3/0D43:	B01C    	BCS $0D61      ; Deny Umaro/guest
C3/0D45:	8D0242  	STA $4202      ; Set multiplicand
C3/0D48:	A936    	LDA #$36       ; Spell list length
C3/0D4A:	8D0342  	STA $4203      ; Set multiplier
C3/0D4D:	EA      	NOP
C3/0D4E:	EA      	NOP
C3/0D4F:	EA      	NOP
C3/0D50:	A03600  	LDY #$0036     ; Spells left: 54
C3/0D53:	AE1642  	LDX $4216      ; Index product
C3/0D56:	BD6E1A  	LDA $1A6E,X    ; Spell mastery
C3/0D59:	C9FF    	CMP #$FF       ; Fully learned?
C3/0D5B:	F006    	BEQ $0D63      ; Allow if so
C3/0D5D:	E8      	INX            ; Point to next
C3/0D5E:	88      	DEY            ; One less left
C3/0D5F:	D0F5    	BNE $0D56      ; Loop till last
C3/0D61:	18      	CLC            ; Access: No
C3/0D62:	60      	RTS            ; Exit
C3/0D63:	38      	SEC            ; Access: Yes
C3/0D64:	60      	RTS

Determine max HP or MP with gear bonus
C3/0D65:	C220    	REP #$20       ; 16-bit A
C3/0D67:	A5F3    	LDA $F3        ; Max HP or MP
C3/0D69:	29FF3F  	AND #$3FFF     ; Clear flags
C3/0D6C:	85E7    	STA $E7        ; Memorize value
C3/0D6E:	A5F3    	LDA $F3        ; Max HP or MP
C3/0D70:	2900C0  	AND #$C000     ; Get bonus flags
C3/0D73:	18      	CLC            ; Prepare ROL
C3/0D74:	2A      	ROL A          ; Put in b7 & C
C3/0D75:	2A      	ROL A          ; Put in C & b0
C3/0D76:	2A      	ROL A          ; Put in b0-b1
C3/0D77:	2A      	ROL A          ; Put in b1-b2
C3/0D78:	AA      	TAX            ; Index them
C3/0D79:	A5E7    	LDA $E7        ; Max HP or MP
C3/0D7B:	7C7E0D  	JMP ($0D7E,X)  ; Apply bonus

Jump table for the above
C3/0D7E:	860D    	; No bonus
C3/0D80:	880D    	; HP or MP + 25%
C3/0D82:	890D    	; HP or MP + 50%
C3/0D84:	870D    	; HP or MP + 12.5%

Boost max HP or MP based on entry point
C3/0D86:	7B      	TDC            ; Clear bonus
C3/0D87:	4A      	LSR A          ; Halve bonus
C3/0D88:	4A      	LSR A          ; Halve bonus
C3/0D89:	4A      	LSR A          ; Halve bonus
C3/0D8A:	18      	CLC            ; Prepare ADC
C3/0D8B:	65E7    	ADC $E7        ; Add max value
C3/0D8D:	85F3    	STA $F3        ; Memorize sum
C3/0D8F:	E220    	SEP #$20       ; 8-bit A
C3/0D91:	60      	RTS

Enforce HP cap
C3/0D92:	A6F3    	LDX $F3        ; Max HP
C3/0D94:	E01027  	CPX #$2710     ; Under 10000?
C3/0D97:	9005    	BCC $0D9E      ; Exit if so
C3/0D99:	A20F27  	LDX #$270F     ; Enforce 9999
C3/0D9C:	86F3    	STX $F3        ; Save changes
C3/0D9E:	60      	RTS

Enforce MP cap
C3/0D9F:	A6F3    	LDX $F3        ; Max MP
C3/0DA1:	E0E803  	CPX #$03E8     ; Under 1000?
C3/0DA4:	9005    	BCC $0DAB      ; Exit if so
C3/0DA6:	A2E703  	LDX #$03E7     ; Enforce 999
C3/0DA9:	86F3    	STX $F3        ; Save changes
C3/0DAB:	60      	RTS

Restore cursor position in inventory
C3/0DAC:	AC2F02  	LDY $022F      ; Old list pos
C3/0DAF:	844F    	STY $4F        ; Set as current
C3/0DB1:	A54F    	LDA $4F        ; List column
C3/0DB3:	854D    	STA $4D        ; Set as onscreen
C3/0DB5:	AD3102  	LDA $0231      ; Old scroll pos
C3/0DB8:	8064    	BRA $0E1E      ; Restore it, etc.

Interchange cursor memory for swapped members
C3/0DBA:	7B      	TDC            ; Clear A
C3/0DBB:	A54B    	LDA $4B        ; Chosen slot B
C3/0DBD:	0A      	ASL A          ; Double it
C3/0DBE:	AA      	TAX            ; Index it
C3/0DBF:	A528    	LDA $28        ; Chosen slot A
C3/0DC1:	0A      	ASL A          ; Double it
C3/0DC2:	A8      	TAY            ; Index it
C3/0DC3:	C220    	REP #$20       ; 16-bit A
C3/0DC5:	BD3602  	LDA $0236,X    ; B's Skills pos
C3/0DC8:	85E7    	STA $E7        ; Memorize it
C3/0DCA:	B93602  	LDA $0236,Y    ; A's Skills pos
C3/0DCD:	9D3602  	STA $0236,X    ; Set as B's
C3/0DD0:	A5E7    	LDA $E7        ; B's Skills pos
C3/0DD2:	993602  	STA $0236,Y    ; Set as A's
C3/0DD5:	BD3E02  	LDA $023E,X    ; B's Magic pos
C3/0DD8:	85E7    	STA $E7        ; Memorize it
C3/0DDA:	B93E02  	LDA $023E,Y    ; A's Magic pos
C3/0DDD:	9D3E02  	STA $023E,X    ; Set as B's
C3/0DE0:	A5E7    	LDA $E7        ; B's Magic pos
C3/0DE2:	993E02  	STA $023E,Y    ; Set as A's
C3/0DE5:	E220    	SEP #$20       ; 8-bit A
C3/0DE7:	7B      	TDC            ; Clear A
C3/0DE8:	A54B    	LDA $4B        ; Chosen slot B
C3/0DEA:	AA      	TAX            ; Index it
C3/0DEB:	A528    	LDA $28        ; Chosen slot A
C3/0DED:	A8      	TAY            ; Index it
C3/0DEE:	BD4602  	LDA $0246,X    ; B's Magic bar
C3/0DF1:	85E0    	STA $E0        ; Memorize pos
C3/0DF3:	B94602  	LDA $0246,Y    ; A's Magic bar
C3/0DF6:	9D4602  	STA $0246,X    ; Set as B's
C3/0DF9:	A5E0    	LDA $E0        ; B's Magic bar
C3/0DFB:	994602  	STA $0246,Y    ; Set as A's
C3/0DFE:	60      	RTS

Restore cursor position in Skills menu
C3/0DFF:	7B      	TDC            ; Clear A
C3/0E00:	A528    	LDA $28        ; Member slot
C3/0E02:	0A      	ASL A          ; Double it
C3/0E03:	AA      	TAX            ; Index it
C3/0E04:	BC3602  	LDY $0236,X    ; Former position
C3/0E07:	844D    	STY $4D        ; Set as current
C3/0E09:	60      	RTS

Restore cursor position in Magic menu
C3/0E0A:	7B      	TDC            ; Clear A
C3/0E0B:	A528    	LDA $28        ; Member slot
C3/0E0D:	0A      	ASL A          ; Double it
C3/0E0E:	AA      	TAX            ; Index it
C3/0E0F:	BC3E02  	LDY $023E,X    ; Old list pos
C3/0E12:	844F    	STY $4F        ; Set as current
C3/0E14:	A54F    	LDA $4F        ; List column
C3/0E16:	854D    	STA $4D        ; Set as onscreen
C3/0E18:	A528    	LDA $28        ; Member slot
C3/0E1A:	AA      	TAX            ; Index it
C3/0E1B:	BD4602  	LDA $0246,X    ; Old scroll pos
C3/0E1E:	854A    	STA $4A        ; Set as current
C3/0E20:	A550    	LDA $50        ; List row
C3/0E22:	38      	SEC            ; Prepare SBC
C3/0E23:	E54A    	SBC $4A        ; Sub scroll pos
C3/0E25:	854E    	STA $4E        ; Set onscreen row
C3/0E27:	60      	RTS

Upload BG1 tilemaps A and B
C3/0E28:	A00000  	LDY #$0000     ; $0000
C3/0E2B:	8C1621  	STY $2116      ; Set VRAM ptr
C3/0E2E:	A04938  	LDY #$3849     ; 7E/3849
C3/0E31:	8C0243  	STY $4302      ; Set src LBs
C3/0E34:	8052    	BRA $0E88      ; Move data

Upload BG1 tilemaps B and C
C3/0E36:	A00004  	LDY #$0400     ; $0400
C3/0E39:	8C1621  	STY $2116      ; Set VRAM ptr
C3/0E3C:	A04940  	LDY #$4049     ; 7E/4049
C3/0E3F:	8C0243  	STY $4302      ; Set src LBs
C3/0E42:	8044    	BRA $0E88      ; Move data

Upload BG1 tilemaps C and D
C3/0E44:	A00008  	LDY #$0800     ; $0800
C3/0E47:	8C1621  	STY $2116      ; Set VRAM ptr
C3/0E4A:	A04948  	LDY #$4849     ; 7E/4849
C3/0E4D:	8C0243  	STY $4302      ; Set src LBs
C3/0E50:	8036    	BRA $0E88      ; Move data

Upload BG2 tilemaps A and B
C3/0E52:	A00010  	LDY #$1000     ; $1000
C3/0E55:	8C1621  	STY $2116      ; Set VRAM ptr
C3/0E58:	A04958  	LDY #$5849     ; 7E/5849
C3/0E5B:	8C0243  	STY $4302      ; Set src LBs
C3/0E5E:	8028    	BRA $0E88      ; Move data

Upload BG2 tilemaps C and D
C3/0E60:	A00018  	LDY #$1800     ; $1800
C3/0E63:	8C1621  	STY $2116      ; Set VRAM ptr
C3/0E66:	A04968  	LDY #$6849     ; 7E/6849
C3/0E69:	8C0243  	STY $4302      ; Set src LBs
C3/0E6C:	801A    	BRA $0E88      ; Move data

Upload BG3 tilemaps A and B
C3/0E6E:	A00040  	LDY #$4000     ; $4000
C3/0E71:	8C1621  	STY $2116      ; Set VRAM ptr
C3/0E74:	A04978  	LDY #$7849     ; 7E/7849
C3/0E77:	8C0243  	STY $4302      ; Set src LBs
C3/0E7A:	800C    	BRA $0E88      ; Move data

Upload BG3 tilemaps C and D
C3/0E7C:	A00048  	LDY #$4800     ; $4800
C3/0E7F:	8C1621  	STY $2116      ; Set VRAM ptr
C3/0E82:	A04988  	LDY #$8849     ; 7E/8849
C3/0E85:	8C0243  	STY $4302      ; Set src LBs
C3/0E88:	A901    	LDA #$01       ; 2Rx1B to PPU
C3/0E8A:	8D0043  	STA $4300      ; Set DMA mode
C3/0E8D:	A918    	LDA #$18       ; $2118
C3/0E8F:	8D0143  	STA $4301      ; To VRAM
C3/0E92:	A97E    	LDA #$7E       ; Bank: 7E
C3/0E94:	8D0443  	STA $4304      ; Set src HB
C3/0E97:	A00010  	LDY #$1000     ; Bytes: 4096
C3/0E9A:	8C0543  	STY $4305      ; Set data size
C3/0E9D:	A901    	LDA #$01       ; Channel: 0
C3/0E9F:	8D0B42  	STA $420B      ; Move data
C3/0EA2:	60      	RTS

Play cursor sound
C3/0EA3:	A5AE    	LDA $AE        ; Started sound
C3/0EA5:	C921    	CMP #$21       ; Cursor's?
C3/0EA7:	F008    	BEQ $0EB1      ; Exit if so
C3/0EA9:	A921    	LDA #$21       ; APU command
C3/0EAB:	85AE    	STA $AE        ; Prevent repeat
C3/0EAD:	8F402100	STA $002140    ; Set I/O port 0
C3/0EB1:	60      	RTS

Play click sound
C3/0EB2:	A920    	LDA #$20       ; APU command
C3/0EB4:	8F402100	STA $002140    ; Set I/O port 0
C3/0EB8:	60      	RTS

Play save sound
C3/0EB9:	A923    	LDA #$23       ; APU command
C3/0EBB:	8F402100	STA $002140    ; Set I/O port 0
C3/0EBF:	60      	RTS

Play buzzer sound
C3/0EC0:	A922    	LDA #$22       ; APU command
C3/0EC2:	8F402100	STA $002140    ; Set I/O port 0
C3/0EC6:	60      	RTS

Play letter deletion sound
C3/0EC7:	A924    	LDA #$24       ; APU command
C3/0EC9:	8F402100	STA $002140    ; Set I/O port 0
C3/0ECD:	60      	RTS

Play cash register sound
C3/0ECE:	A9BF    	LDA #$BF       ; Sound number
C3/0ED0:	8F011300	STA $001301    ; Set I/O port 1
C3/0ED4:	A918    	LDA #$18       ; APU command
C3/0ED6:	8F001300	STA $001300    ; Set I/O port 0
C3/0EDA:	A980    	LDA #$80       ; Volume specs
C3/0EDC:	8F021300	STA $001302    ; Set I/O port 2
C3/0EE0:	220400C5	JSL $C50004    ; Update ports
C3/0EE4:	60      	RTS

Play recovery sound
C3/0EE5:	A9C5    	LDA #$C5       ; Sound number
C3/0EE7:	80E7    	BRA $0ED0      ; Set vol, etc.

Set to upload BG1 tilemaps A and B
C3/0EE9:	A00000  	LDY #$0000     ; $0000
C3/0EEC:	8414    	STY $14        ; Set VRAM ptr
C3/0EEE:	A04938  	LDY #$3849     ; 7E/3849
C3/0EF1:	8416    	STY $16        ; Set src LBs
C3/0EF3:	A97E    	LDA #$7E       ; Bank: 7E
C3/0EF5:	8518    	STA $18        ; Set src HB
C3/0EF7:	A00010  	LDY #$1000     ; Bytes: 4096
C3/0EFA:	8412    	STY $12        ; Set data size
C3/0EFC:	60      	RTS

Set to upload BG1 tilemap A
C3/0EFD:	A00000  	LDY #$0000     ; $0000
C3/0F00:	8414    	STY $14        ; Set VRAM ptr
C3/0F02:	A04938  	LDY #$3849     ; 7E/3849
C3/0F05:	8416    	STY $16        ; Set src LBs
C3/0F07:	A97E    	LDA #$7E       ; Bank: 7E
C3/0F09:	8518    	STA $18        ; Set src HB
C3/0F0B:	A00008  	LDY #$0800     ; Bytes: 2048
C3/0F0E:	8412    	STY $12        ; Set data size
C3/0F10:	60      	RTS

Set to upload BG1 tilemap B
C3/0F11:	A00004  	LDY #$0400     ; $0400
C3/0F14:	8414    	STY $14        ; Set VRAM ptr
C3/0F16:	A04940  	LDY #$4049     ; 7E/4049
C3/0F19:	8416    	STY $16        ; Set src LBs
C3/0F1B:	A97E    	LDA #$7E       ; Bank: 7E
C3/0F1D:	8518    	STA $18        ; Set src HB
C3/0F1F:	A00008  	LDY #$0800     ; Bytes: 2048
C3/0F22:	8412    	STY $12        ; Set data size
C3/0F24:	60      	RTS

Set to upload BG3 tilemaps A and B
C3/0F25:	A00040  	LDY #$4000     ; $4000
C3/0F28:	8414    	STY $14        ; Set VRAM ptr
C3/0F2A:	A04978  	LDY #$7849     ; 7E/7849
C3/0F2D:	8416    	STY $16        ; Set src LBs
C3/0F2F:	A97E    	LDA #$7E       ; Bank: 7E
C3/0F31:	8518    	STA $18        ; Set src HB
C3/0F33:	A00010  	LDY #$1000     ; Bytes: 4096
C3/0F36:	8412    	STY $12        ; Set data size
C3/0F38:	60      	RTS

Set to upload BG3 tilemap A (version 1)
C3/0F39:	A00040  	LDY #$4000     ; $4000
C3/0F3C:	8414    	STY $14        ; Set VRAM ptr
C3/0F3E:	A04978  	LDY #$7849     ; 7E/7849
C3/0F41:	8416    	STY $16        ; Set src LBs
C3/0F43:	A97E    	LDA #$7E       ; Bank: 7E
C3/0F45:	8518    	STA $18        ; Set src HB
C3/0F47:	A00008  	LDY #$0800     ; Bytes: 2048
C3/0F4A:	8412    	STY $12        ; Set data size
C3/0F4C:	60      	RTS

Set to upload BG3 tilemap B (version 1)
C3/0F4D:	A00044  	LDY #$4400     ; $4400
C3/0F50:	8414    	STY $14        ; Set VRAM ptr
C3/0F52:	A04980  	LDY #$8049     ; 7E/8049
C3/0F55:	8416    	STY $16        ; Set src LBs
C3/0F57:	A97E    	LDA #$7E       ; Bank: 7E
C3/0F59:	8518    	STA $18        ; Set src HB
C3/0F5B:	A00008  	LDY #$0800     ; Bytes: 2048
C3/0F5E:	8412    	STY $12        ; Set data size
C3/0F60:	60      	RTS

Set to upload BG3 tilemap A (version 2)
C3/0F61:	A00040  	LDY #$4000     ; $4000
C3/0F64:	841B    	STY $1B        ; Set VRAM ptr
C3/0F66:	A04978  	LDY #$7849     ; 7E/7849
C3/0F69:	841D    	STY $1D        ; Set src LBs
C3/0F6B:	A97E    	LDA #$7E       ; Bank: 7E
C3/0F6D:	851F    	STA $1F        ; Set src HB
C3/0F6F:	A00008  	LDY #$0800     ; Bytes: 2048
C3/0F72:	8419    	STY $19        ; Set data size
C3/0F74:	60      	RTS

Set to upload BG3 tilemap B (version 2)
C3/0F75:	A00044  	LDY #$4400     ; $4400
C3/0F78:	841B    	STY $1B        ; Set VRAM ptr
C3/0F7A:	A04980  	LDY #$8049     ; 7E/8049
C3/0F7D:	841D    	STY $1D        ; Set src LBs
C3/0F7F:	A97E    	LDA #$7E       ; Bank: 7E
C3/0F81:	851F    	STA $1F        ; Set src HB
C3/0F83:	A00008  	LDY #$0800     ; Bytes: 2048
C3/0F86:	8419    	STY $19        ; Set data size
C3/0F88:	60      	RTS

Disable conditional upload during NMI
C3/0F89:	641B    	STZ $1B        ; Null dst LB
C3/0F8B:	641C    	STZ $1C        ; Null dst HB
C3/0F8D:	60      	RTS

Load specified palette (for ending)
C3/0F8E:	85ED    	STA $ED        ; Set src HB
C3/0F90:	84E7    	STY $E7        ; Set dst LBs
C3/0F92:	86EB    	STX $EB        ; Set src LBs
C3/0F94:	A97E    	LDA #$7E       ; Bank: 7E
C3/0F96:	85E9    	STA $E9        ; Set dst HB
C3/0F98:	A400    	LDY $00        ; Index: 0
C3/0F9A:	C220    	REP #$20       ; 16-bit A
C3/0F9C:	B7EB    	LDA [$EB],Y    ; Load color
C3/0F9E:	97E7    	STA [$E7],Y    ; Save in RAM
C3/0FA0:	C8      	INY            ; Index +1
C3/0FA1:	C8      	INY            ; Index +1
C3/0FA2:	C02000  	CPY #$0020     ; Copied 16?
C3/0FA5:	D0F5    	BNE $0F9C      ; Loop if not
C3/0FA7:	E220    	SEP #$20       ; 8-bit A
C3/0FA9:	60      	RTS

Set to gradually convert one palette into another
C3/0FAA:	48      	PHA            ; Save slowness
C3/0FAB:	84E7    	STY $E7        ; Save dst LBs
C3/0FAD:	86EB    	STX $EB        ; Save src LBs
C3/0FAF:	A97E    	LDA #$7E       ; Bank: 7E
C3/0FB1:	85E9    	STA $E9        ; Save dst HB
C3/0FB3:	A900    	LDA #$00       ; Min slot: 0
C3/0FB5:	A0DD0F  	LDY #$0FDD     ; C3/0FDD
C3/0FB8:	207311  	JSR $1173      ; Queue fade fn
C3/0FBB:	68      	PLA            ; Fade slowness
C3/0FBC:	9FCA377E	STA $7E37CA,X  ; Put in queue
C3/0FC0:	A5E9    	LDA $E9        ; Dest HB
C3/0FC2:	9FC9367E	STA $7E36C9,X  ; Put in queue
C3/0FC6:	A5ED    	LDA $ED        ; Source HB
C3/0FC8:	9FCA367E	STA $7E36CA,X  ; Put in queue
C3/0FCC:	C220    	REP #$20       ; 16-bit A
C3/0FCE:	A5E7    	LDA $E7        ; Dest LBs
C3/0FD0:	9FC9337E	STA $7E33C9,X  ; Put in queue
C3/0FD4:	A5EB    	LDA $EB        ; Source LBs
C3/0FD6:	9F49347E	STA $7E3449,X  ; Put in queue
C3/0FDA:	E220    	SEP #$20       ; 8-bit A
C3/0FDC:	60      	RTS

Gradually convert one palette into another
C3/0FDD:	AA      	TAX            ; Index mode
C3/0FDE:	7CE10F  	JMP ($0FE1,X)  ; Handle mode

Jump table for the above
C3/0FE1:	E50F    	; Initialize timer
C3/0FE3:	F60F    	; Modify palette

Mode 0: Initialize timer
C3/0FE5:	A62D    	LDX $2D        ; Queue index
C3/0FE7:	A91F    	LDA #$1F       ; Frames: 31
C3/0FE9:	9D4933  	STA $3349,X    ; Set fade timer
C3/0FEC:	A500    	LDA $00        ; Clear A
C3/0FEE:	9D4A33  	STA $334A,X    ; Timer HB: 0
C3/0FF1:	FE4936  	INC $3649,X    ; Mode +1
C3/0FF4:	38      	SEC            ; Set to requeue
C3/0FF5:	60      	RTS

Mode 1: Modify palette
C3/0FF6:	A62D    	LDX $2D        ; Queue index
C3/0FF8:	BDC935  	LDA $35C9,X    ; Delay over?
C3/0FFB:	D035    	BNE $1032      ; Exit if not
C3/0FFD:	BDCA37  	LDA $37CA,X    ; Slowness
C3/1000:	9DC935  	STA $35C9,X    ; Set delay
C3/1003:	BDC936  	LDA $36C9,X    ; Dest HB
C3/1006:	85E2    	STA $E2        ; Memorize it
C3/1008:	BDCA36  	LDA $36CA,X    ; Source HB
C3/100B:	85E5    	STA $E5        ; Memorize it
C3/100D:	C220    	REP #$20       ; 16-bit A
C3/100F:	BDC933  	LDA $33C9,X    ; Dest LBs
C3/1012:	85E0    	STA $E0        ; Memorize them
C3/1014:	BD4934  	LDA $3449,X    ; Source LBs
C3/1017:	85E3    	STA $E3        ; Memorize them
C3/1019:	BD4933  	LDA $3349,X    ; Fade timer
C3/101C:	85F1    	STA $F1        ; Memorize it
C3/101E:	203710  	JSR $1037      ; Alter palette
C3/1021:	E220    	SEP #$20       ; 8-bit A
C3/1023:	AE2D00  	LDX $002D      ; Queue index
C3/1026:	BD4933  	LDA $3349,X    ; Timer expired?
C3/1029:	F005    	BEQ $1030      ; Dequeue if so
C3/102B:	DE4933  	DEC $3349,X    ; Fade timer -1
C3/102E:	D002    	BNE $1032      ; Branch if > 0
C3/1030:	18      	CLC            ; Set to dequeue
C3/1031:	60      	RTS            ; Exit
C3/1032:	DEC935  	DEC $35C9,X    ; Fade delay -1
C3/1035:	38      	SEC            ; Set to requeue
C3/1036:	60      	RTS

Partially convert one palette into another
C3/1037:	A21000  	LDX #$0010     ; Colors: 16
C3/103A:	A400    	LDY $00        ; Color index: 0
C3/103C:	B7E0    	LDA [$E0],Y    ; Actual color
C3/103E:	85E7    	STA $E7        ; Memorize it
C3/1040:	B7E3    	LDA [$E3],Y    ; Target color
C3/1042:	85E9    	STA $E9        ; Memorize it
C3/1044:	205110  	JSR $1051      ; Alter color
C3/1047:	A5E7    	LDA $E7        ; ...
C3/1049:	97E0    	STA [$E0],Y    ; Save changes
C3/104B:	C8      	INY            ; Color index +1
C3/104C:	C8      	INY            ; Color index +1
C3/104D:	CA      	DEX            ; One less color
C3/104E:	D0EC    	BNE $103C      ; Loop till last
C3/1050:	60      	RTS

Partially convert one color into another
C3/1051:	A5E7    	LDA $E7        ; Actual color
C3/1053:	291F00  	AND #$001F     ; Get red
C3/1056:	85EB    	STA $EB        ; Memorize it
C3/1058:	A5E9    	LDA $E9        ; Target color
C3/105A:	291F00  	AND #$001F     ; Get red
C3/105D:	38      	SEC            ; Prepare SBC
C3/105E:	E5EB    	SBC $EB        ; Both match?
C3/1060:	F00C    	BEQ $106E      ; Skip if so
C3/1062:	9008    	BCC $106C      ; -1 if lesser
C3/1064:	C5F1    	CMP $F1        ; Diff < timer?
C3/1066:	9006    	BCC $106E      ; Skip if so
C3/1068:	E6EB    	INC $EB        ; Red +1
C3/106A:	8002    	BRA $106E      ; Skip a line
C3/106C:	C6EB    	DEC $EB        ; Red -1

Fork: Handle green
C3/106E:	A5E7    	LDA $E7        ; Actual color
C3/1070:	29E003  	AND #$03E0     ; Get green
C3/1073:	85ED    	STA $ED        ; Memorize it
C3/1075:	A5E9    	LDA $E9        ; Target color
C3/1077:	29E003  	AND #$03E0     ; Get green
C3/107A:	38      	SEC            ; Prepare SBC
C3/107B:	E5ED    	SBC $ED        ; Both match?
C3/107D:	F01C    	BEQ $109B      ; Skip if so
C3/107F:	9012    	BCC $1093      ; -1 if lesser
C3/1081:	0A      	ASL A          ; x2
C3/1082:	0A      	ASL A          ; x4
C3/1083:	0A      	ASL A          ; x8
C3/1084:	EB      	XBA            ; Now 0-31
C3/1085:	C5F1    	CMP $F1        ; Diff < timer?
C3/1087:	9012    	BCC $109B      ; Skip if so
C3/1089:	18      	CLC            ; Prepare ADC
C3/108A:	A5ED    	LDA $ED        ; Actual green
C3/108C:	692000  	ADC #$0020     ; Green +1
C3/108F:	85ED    	STA $ED        ; Save changes
C3/1091:	8008    	BRA $109B      ; Do blue
C3/1093:	A5ED    	LDA $ED        ; Actual green
C3/1095:	38      	SEC            ; Prepare SBC
C3/1096:	E92000  	SBC #$0020     ; Green -1
C3/1099:	85ED    	STA $ED        ; Save changes

Fork: Handle blue
C3/109B:	A5E7    	LDA $E7        ; Actual color
C3/109D:	29007C  	AND #$7C00     ; Get blue
C3/10A0:	85EF    	STA $EF        ; Memorize it
C3/10A2:	A5E9    	LDA $E9        ; Target color
C3/10A4:	29007C  	AND #$7C00     ; Get blue
C3/10A7:	38      	SEC            ; Prepare SBC
C3/10A8:	E5EF    	SBC $EF        ; Both match?
C3/10AA:	F01F    	BEQ $10CB      ; Skip if so
C3/10AC:	9015    	BCC $10C3      ; -1 if lesser
C3/10AE:	E220    	SEP #$20       ; 8-bit A
C3/10B0:	EB      	XBA            ; 256
C3/10B1:	4A      	LSR A          ; 512
C3/10B2:	4A      	LSR A          ; Now 0-31
C3/10B3:	C220    	REP #$20       ; 16-bit A
C3/10B5:	C5F1    	CMP $F1        ; Diff < timer?
C3/10B7:	9012    	BCC $10CB      ; Skip if so
C3/10B9:	18      	CLC            ; Prepare ADC
C3/10BA:	A5EF    	LDA $EF        ; Actual blue
C3/10BC:	690004  	ADC #$0400     ; Blue +1
C3/10BF:	85EF    	STA $EF        ; Save changes
C3/10C1:	8008    	BRA $10CB      ; Merge RGB
C3/10C3:	A5EF    	LDA $EF        ; Actual blue
C3/10C5:	38      	SEC            ; Prepare SBC
C3/10C6:	E90004  	SBC #$0400     ; Blue -1
C3/10C9:	85EF    	STA $EF        ; Save changes

Fork: Merge RGB components
C3/10CB:	A5EB    	LDA $EB        ; Altered red
C3/10CD:	05ED    	ORA $ED        ; Add green
C3/10CF:	05EF    	ORA $EF        ; Add blue
C3/10D1:	85E7    	STA $E7        ; Uh...
C3/10D3:	60      	RTS

White palette for an ending transition
C3/10D4:	0000 FF7F FF7F FF7F FF7F FF7F FF7F FF7F
C3/10E4:	FF7F FF7F FF7F FF7F FF7F FF7F FF7F FF7F

Black palette for most ending transitions
C3/10F4:	0000 0000 0000 0000 0000 0000 0000 0000
C3/1104:	0000 0000 0000 0000 0000 0000 0000 0000

Reset OAM and animation queue
C3/1114:	A600    	LDX $00        ; Clear X
C3/1116:	862D    	STX $2D        ; Queue index: 0
C3/1118:	862F    	STX $2F        ; No use...
C3/111A:	C220    	REP #$20       ; 16-bit A
C3/111C:	204E11  	JSR $114E      ; Reset OAM
C3/111F:	E210    	SEP #$10       ; 8-bit X, Y
C3/1121:	A27E    	LDX #$7E       ; Bank: 7E
C3/1123:	DA      	PHX            ; Put on stack
C3/1124:	AB      	PLB            ; Set DB to 7E
C3/1125:	A200    	LDX #$00       ; Queue slot: 1
C3/1127:	9E4932  	STZ $3249,X    ; Anim fn: None
C3/112A:	9E4936  	STZ $3649,X    ; Anim mode: 0
C3/112D:	9EC935  	STZ $35C9,X    ; Misc. specs: 0
C3/1130:	9E4937  	STZ $3749,X    ; OAM complements
C3/1133:	9EC933  	STZ $33C9,X    ; Fractional X: 0
C3/1136:	9E4934  	STZ $3449,X    ; Fractional Y: 0
C3/1139:	9EC934  	STZ $34C9,X    ; H-Speed: 0
C3/113C:	9E4935  	STZ $3549,X    ; V-Speed: 0
C3/113F:	E8      	INX            ; Index +1
C3/1140:	E8      	INX            ; Index +1
C3/1141:	E080    	CPX #$80       ; Done 64 slots?
C3/1143:	D0E2    	BNE $1127      ; Loop if not
C3/1145:	A200    	LDX #$00       ; Bank: 00
C3/1147:	DA      	PHX            ; Put on stack
C3/1148:	AB      	PLB            ; Set DB to 0
C3/1149:	E220    	SEP #$20       ; 8-bit A
C3/114B:	C210    	REP #$10       ; 16-bit X, Y
C3/114D:	60      	RTS

Reset OAM
C3/114E:	A600    	LDX $00        ; Index: 0
C3/1150:	A901E0  	LDA #$E001     ; X=1, Y=224
C3/1153:	9D0003  	STA $0300,X    ; Put offscreen
C3/1156:	E8      	INX            ; Index +1
C3/1157:	E8      	INX            ; Index +1
C3/1158:	A90100  	LDA #$0001     ; Tile num: 1
C3/115B:	9D0003  	STA $0300,X    ; Set attribs
C3/115E:	E8      	INX            ; Index +1
C3/115F:	E8      	INX            ; Index +1
C3/1160:	E00002  	CPX #$0200     ; Past Lo-OAM?
C3/1163:	D0EB    	BNE $1150      ; Loop if not
C3/1165:	A400    	LDY $00        ; Index: 0
C3/1167:	98      	TYA            ; Clear A
C3/1168:	990005  	STA $0500,Y    ; Clear Hi-OAM
C3/116B:	C8      	INY            ; Index +1
C3/116C:	C8      	INY            ; Index +1
C3/116D:	C02000  	CPY #$0020     ; Past Hi-OAM?
C3/1170:	D0F6    	BNE $1168      ; Loop if not
C3/1172:	60      	RTS

Queue animation function, include queue index
C3/1173:	AA      	TAX            ; Starting slot
C3/1174:	A97E    	LDA #$7E       ; Bank: 7E
C3/1176:	48      	PHA            ; Put on stack
C3/1177:	AB      	PLB            ; Set DB to 7E
C3/1178:	8A      	TXA            ; Starting slot
C3/1179:	208B11  	JSR $118B      ; Queue anim fn
C3/117C:	E220    	SEP #$20       ; 8-bit A
C3/117E:	A900    	LDA #$00       ; Zero A
C3/1180:	48      	PHA            ; Put on stack
C3/1181:	AB      	PLB            ; Set DB to 0
C3/1182:	A52D    	LDA $2D        ; Caller's index
C3/1184:	9F4A377E	STA $7E374A,X  ; Put in queue
C3/1188:	E62F    	INC $2F        ; No use...
C3/118A:	60      	RTS

Queue animation function
C3/118B:	EB      	XBA            ; Switch to HB
C3/118C:	A900    	LDA #$00       ; Clear it
C3/118E:	EB      	XBA            ; Starting slot
C3/118F:	0A      	ASL A          ; x2
C3/1190:	0A      	ASL A          ; x4
C3/1191:	0A      	ASL A          ; x8
C3/1192:	0A      	ASL A          ; x16
C3/1193:	C220    	REP #$20       ; 16-bit A
C3/1195:	AA      	TAX            ; Index it
C3/1196:	BD4932  	LDA $3249,X    ; Empty slot?
C3/1199:	D005    	BNE $11A0      ; Skip if not
C3/119B:	98      	TYA            ; Animation fn
C3/119C:	9D4932  	STA $3249,X    ; Put in queue
C3/119F:	60      	RTS

Fork: Try next slot
C3/11A0:	E8      	INX            ; Index +1
C3/11A1:	E8      	INX            ; Index +1
C3/11A2:	E08000  	CPX #$0080     ; Past slot 64?
C3/11A5:	D0EF    	BNE $1196      ; Loop if not
C3/11A7:	CA      	DEX            ; Index -1
C3/11A8:	CA      	DEX            ; Index -1
C3/11A9:	98      	TYA            ; Animation fn
C3/11AA:	9D4932  	STA $3249,X    ; Put in queue
C3/11AD:	80FE    	BRA $11AD      ; Freeze game...
C3/11AF:	60      	RTS            ; ...

Process animation queue, hide inactive objects
C3/11B0:	8B      	PHB            ; Save DB
C3/11B1:	A97E    	LDA #$7E       ; Bank: 7E
C3/11B3:	48      	PHA            ; Put on stack
C3/11B4:	AB      	PLB            ; Set DB to 7E
C3/11B5:	A20003  	LDX #$0300     ; 7E/0300
C3/11B8:	860E    	STX $0E        ; Set Lo-OAM ptr
C3/11BA:	A20005  	LDX #$0500     ; 7E/0500
C3/11BD:	8610    	STX $10        ; Set Hi-OAM ptr
C3/11BF:	A903    	LDA #$03       ; Tile: 1 of 4
C3/11C1:	8533    	STA $33        ; Set Hi-OAM index
C3/11C3:	6434    	STZ $34        ; Hi-OAM: 4x 8x8
C3/11C5:	A28000  	LDX #$0080     ; Objects: 128
C3/11C8:	8631    	STX $31        ; Set space left
C3/11CA:	A600    	LDX $00        ; Queue index: 0
C3/11CC:	C220    	REP #$20       ; 16-bit A
C3/11CE:	BD4932  	LDA $3249,X    ; Animation fn
C3/11D1:	F022    	BEQ $11F5      ; Skip if blank
C3/11D3:	862D    	STX $2D        ; Set queue index
C3/11D5:	DA      	PHX            ; Save index
C3/11D6:	852B    	STA $2B        ; Set anim fn
C3/11D8:	E220    	SEP #$20       ; 8-bit A
C3/11DA:	7B      	TDC            ; Clear A
C3/11DB:	BD4936  	LDA $3649,X    ; Anim mode
C3/11DE:	0A      	ASL A          ; Double it
C3/11DF:	200312  	JSR $1203      ; Run anim fn
C3/11E2:	C220    	REP #$20       ; 16-bit A
C3/11E4:	FA      	PLX            ; Queue index
C3/11E5:	B00E    	BCS $11F5      ; Branch if kept
C3/11E7:	9E4932  	STZ $3249,X    ; Anim fn: None
C3/11EA:	9E4936  	STZ $3649,X    ; Anim mode: 0
C3/11ED:	9EC935  	STZ $35C9,X    ; Misc. specs: 0
C3/11F0:	9E4937  	STZ $3749,X    ; OAM complements
C3/11F3:	C62F    	DEC $2F        ; No use...
C3/11F5:	E8      	INX            ; Index +1
C3/11F6:	E8      	INX            ; Index +1
C3/11F7:	E08000  	CPX #$0080     ; Done 64 slots?
C3/11FA:	D0D2    	BNE $11CE      ; Loop if not
C3/11FC:	203813  	JSR $1338      ; Purge OAM
C3/11FF:	E220    	SEP #$20       ; 8-bit A
C3/1201:	AB      	PLB            ; Restore DB
C3/1202:	60      	RTS

Execute queued animation function
C3/1203:	6C2B00  	JMP ($002B)    ; Run anim fn

Initialize M7 or object's pose number and timer
C3/1206:	7B      	TDC            ; Clear A
C3/1207:	9DC936  	STA $36C9,X    ; Pose: 1st
C3/120A:	C220    	REP #$20       ; 16-bit A
C3/120C:	BDC932  	LDA $32C9,X    ; Anim ptr LBs
C3/120F:	85EB    	STA $EB        ; Set src LBs
C3/1211:	E220    	SEP #$20       ; 8-bit A
C3/1213:	BDCA35  	LDA $35CA,X    ; Anim ptr HB
C3/1216:	85ED    	STA $ED        ; Set src HB
C3/1218:	A00200  	LDY #$0002     ; Skip pose ptr
C3/121B:	B7EB    	LDA [$EB],Y    ; Pose timer
C3/121D:	9DCA36  	STA $36CA,X    ; Set sprite's
C3/1220:	60      	RTS

Handle object's pose timer, then define OAM
C3/1221:	202712  	JSR $1227      ; Pose timer -1
C3/1224:	4C7312  	JMP $1273      ; Define OAM

Handle pose or Mode 7 timer
C3/1227:	A62D    	LDX $2D        ; Queue index
C3/1229:	A400    	LDY $00        ; ...
C3/122B:	C220    	REP #$20       ; 16-bit A
C3/122D:	BDC932  	LDA $32C9,X    ; Anim ptr LBs
C3/1230:	85EB    	STA $EB        ; Set src LBs
C3/1232:	E220    	SEP #$20       ; 8-bit A
C3/1234:	BDCA35  	LDA $35CA,X    ; Anim ptr HB
C3/1237:	85ED    	STA $ED        ; Set src HB

Fork: Handle control codes
C3/1239:	BDCA36  	LDA $36CA,X    ; Pose timer
C3/123C:	C9FE    	CMP #$FE       ; Infinite?
C3/123E:	F022    	BEQ $1262      ; Exit if so
C3/1240:	C9FF    	CMP #$FF       ; Loop point?
C3/1242:	D008    	BNE $124C      ; Branch if not
C3/1244:	9EC936  	STZ $36C9,X    ; Pose: 1st
C3/1247:	206312  	JSR $1263      ; Set new timer
C3/124A:	80ED    	BRA $1239      ; Repeat checks

Fork: Check if expired
C3/124C:	BDCA36  	LDA $36CA,X    ; Timer expired?
C3/124F:	D00E    	BNE $125F      ; Branch if not
C3/1251:	BDC936  	LDA $36C9,X    ; Pose index
C3/1254:	18      	CLC            ; ...
C3/1255:	6903    	ADC #$03       ; Point to next
C3/1257:	9DC936  	STA $36C9,X    ; Save changes
C3/125A:	206312  	JSR $1263      ; Set new timer
C3/125D:	80DA    	BRA $1239      ; Repeat checks

Fork: Decrease timer
C3/125F:	DECA36  	DEC $36CA,X    ; Timer -1
C3/1262:	60      	RTS

Initialize pose or Mode 7 timer
C3/1263:	E210    	SEP #$10       ; 8-bit X, Y
C3/1265:	BDC936  	LDA $36C9,X    ; Pose index
C3/1268:	A8      	TAY            ; Index it
C3/1269:	C8      	INY            ; Skip ptr LB
C3/126A:	C8      	INY            ; Skip ptr HB
C3/126B:	B7EB    	LDA [$EB],Y    ; Pose timer
C3/126D:	9DCA36  	STA $36CA,X    ; Set object's
C3/1270:	C210    	REP #$10       ; 16-bit X, Y
C3/1272:	60      	RTS

Define OAM for object's tiles
C3/1273:	E210    	SEP #$10       ; 8-bit X, Y
C3/1275:	BDC936  	LDA $36C9,X    ; Pose index
C3/1278:	A8      	TAY            ; Index it
C3/1279:	C220    	REP #$20       ; 16-bit A
C3/127B:	B7EB    	LDA [$EB],Y    ; Pose OAM ptr
C3/127D:	85E7    	STA $E7        ; Set src LBs
C3/127F:	C8      	INY            ; ...
C3/1280:	C8      	INY            ; ...
C3/1281:	E220    	SEP #$20       ; 8-bit A
C3/1283:	BDCA35  	LDA $35CA,X    ; OAM ptr HB
C3/1286:	85E9    	STA $E9        ; Set src HB
C3/1288:	C210    	REP #$10       ; 16-bit X, Y
C3/128A:	A400    	LDY $00        ; Index: 0
C3/128C:	A531    	LDA $31        ; OAM's full?
C3/128E:	F06B    	BEQ $12FB      ; Exit if so
C3/1290:	B7E7    	LDA [$E7],Y    ; Tile count
C3/1292:	85E6    	STA $E6        ; Memorize it
C3/1294:	F065    	BEQ $12FB      ; Exit if none
C3/1296:	C8      	INY            ; Index +1

Fork: Large tile (16x16)
C3/1297:	B7E7    	LDA [$E7],Y    ; Tile X & flag
C3/1299:	85E0    	STA $E0        ; Memorize them
C3/129B:	1013    	BPL $12B0      ; Branch if 8x8
C3/129D:	7B      	TDC            ; Clear A
C3/129E:	A533    	LDA $33        ; Hi-OAM index
C3/12A0:	AA      	TAX            ; Index it
C3/12A1:	BF3413C3	LDA $C31334,X  ; Size flag
C3/12A5:	18      	CLC            ; Prepare ADC
C3/12A6:	6534    	ADC $34        ; Add flag pack
C3/12A8:	8534    	STA $34        ; Set flag pack
C3/12AA:	9210    	STA ($10)      ; Put in Hi-OAM
C3/12AC:	A62D    	LDX $2D        ; Queue index
C3/12AE:	8004    	BRA $12B4      ; Skip 2 lines

Fork: Small tile (8x8)
C3/12B0:	A534    	LDA $34        ; OAM flag pack
C3/12B2:	9210    	STA ($10)      ; Put in Hi-OAM
C3/12B4:	A5E0    	LDA $E0        ; Tile's X-Pos
C3/12B6:	297F    	AND #$7F       ; Clear flag
C3/12B8:	85E0    	STA $E0        ; Save changes

Fork: Pan with BG1
C3/12BA:	BD4A36  	LDA $364A,X    ; Sprite flags
C3/12BD:	8901    	BIT #$01       ; Pan with BG1?
C3/12BF:	F00D    	BEQ $12CE      ; Branch if not
C3/12C1:	64E1    	STZ $E1        ; Tile's X HB: 0
C3/12C3:	C220    	REP #$20       ; 16-bit A
C3/12C5:	A5E0    	LDA $E0        ; Tile's rel X
C3/12C7:	38      	SEC            ; Prepare SBC
C3/12C8:	E535    	SBC $35        ; Deduct BG1 X-Pos
C3/12CA:	85E0    	STA $E0        ; Save changes
C3/12CC:	E220    	SEP #$20       ; 8-bit A

Fork: Define Lo-OAM, do next tile
C3/12CE:	20FC12  	JSR $12FC      ; Adjust attribs
C3/12D1:	C633    	DEC $33        ; Hi-OAM index -1
C3/12D3:	100A    	BPL $12DF      ; Branch if 0+
C3/12D5:	A903    	LDA #$03       ; Tile: 1 of 4
C3/12D7:	8533    	STA $33        ; Reset size index
C3/12D9:	6434    	STZ $34        ; Hi-OAM: 4x 8x8
C3/12DB:	C220    	REP #$20       ; 16-bit A
C3/12DD:	E610    	INC $10        ; Hi-OAM ptr +1
C3/12DF:	C220    	REP #$20       ; 16-bit A
C3/12E1:	A5E0    	LDA $E0        ; Tile coords
C3/12E3:	920E    	STA ($0E)      ; Save in OAM
C3/12E5:	E60E    	INC $0E        ; Lo-OAM ptr +1
C3/12E7:	E60E    	INC $0E        ; Lo-OAM ptr +1
C3/12E9:	A5E2    	LDA $E2        ; Tile num/attr
C3/12EB:	920E    	STA ($0E)      ; Save in OAM
C3/12ED:	E60E    	INC $0E        ; Lo-OAM ptr +1
C3/12EF:	E60E    	INC $0E        ; Lo-OAM ptr +1
C3/12F1:	E220    	SEP #$20       ; 8-bit A
C3/12F3:	C631    	DEC $31        ; Space left -1
C3/12F5:	F004    	BEQ $12FB      ; Exit if full
C3/12F7:	C6E6    	DEC $E6        ; Tiles left -1
C3/12F9:	D09C    	BNE $1297      ; Loop till last
C3/12FB:	60      	RTS

Determine object tile's coordinates, load attributes
C3/12FC:	A5E0    	LDA $E0        ; Tile's rel X
C3/12FE:	18      	CLC            ; Prepare ADC
C3/12FF:	7DCA33  	ADC $33CA,X    ; Add object's X
C3/1302:	85E0    	STA $E0        ; Save changes
C3/1304:	C8      	INY            ; Index +1
C3/1305:	B7E7    	LDA [$E7],Y    ; Tile's rel Y
C3/1307:	18      	CLC            ; Prepare ADC
C3/1308:	7D4A34  	ADC $344A,X    ; Add object's Y
C3/130B:	85E1    	STA $E1        ; Memorize sum
C3/130D:	C8      	INY            ; Index +1
C3/130E:	B7E7    	LDA [$E7],Y    ; Tile num LSBs
C3/1310:	85E2    	STA $E2        ; Memorize them
C3/1312:	C8      	INY            ; Index +1
C3/1313:	BD4A36  	LDA $364A,X    ; Sprite flags
C3/1316:	8902    	BIT #$02       ; Mirror H-wise?
C3/1318:	F006    	BEQ $1320      ; Branch if not
C3/131A:	B7E7    	LDA [$E7],Y    ; Tile attributes
C3/131C:	0940    	ORA #$40       ; Add H-Flip
C3/131E:	8002    	BRA $1322      ; Skip a line
C3/1320:	B7E7    	LDA [$E7],Y    ; Tile attributes
C3/1322:	85E3    	STA $E3        ; Memorize them
C3/1324:	BD4937  	LDA $3749,X    ; OAM complements
C3/1327:	F009    	BEQ $1332      ; Exit if none
C3/1329:	A5E3    	LDA $E3        ; Tile attributes
C3/132B:	29F1    	AND #$F1       ; Clear palette
C3/132D:	1D4937  	ORA $3749,X    ; Add complements
C3/1330:	85E3    	STA $E3        ; Save changes
C3/1332:	C8      	INY            ; Index +1
C3/1333:	60      	RTS

Hi-OAM complements
C3/1334:	80      	; Tile 4: Large
C3/1335:	20      	; Tile 3: Large
C3/1336:	08      	; Tile 2: Large
C3/1337:	02      	; Tile 1: Large

Hide inactive tiles in OAM
C3/1338:	A431    	LDY $31        ; Unused tiles
C3/133A:	F010    	BEQ $134C      ; Exit if none
C3/133C:	A2FC01  	LDX #$01FC     ; Tile: Last
C3/133F:	A901E0  	LDA #$E001     ; X=1, Y=224
C3/1342:	9D0003  	STA $0300,X    ; Set position
C3/1345:	CA      	DEX            ; OAM index -1
C3/1346:	CA      	DEX            ; OAM index -1
C3/1347:	CA      	DEX            ; OAM index -1
C3/1348:	CA      	DEX            ; OAM index -1
C3/1349:	88      	DEY            ; Tiles left -1
C3/134A:	D0F6    	BNE $1342      ; Loop till last
C3/134C:	60      	RTS

Trigger NMI, decode joypads, etc.
C3/134D:	206813  	JSR $1368      ; Trigger NMI
C3/1350:	A546    	LDA $46        ; Menu flags
C3/1352:	8920    	BIT #$20       ; Scroll list?
C3/1354:	F003    	BEQ $1359      ; Branch if not
C3/1356:	200581  	JSR $8105      ; Scroll BG1
C3/1359:	226EA4C3	JSL $C3A46E    ; Decode joypads
C3/135D:	A520    	LDA $20        ; Transition timer
C3/135F:	F006    	BEQ $1367      ; Exit if off
C3/1361:	7B      	TDC            ; Clear A
C3/1362:	A8      	TAY            ; Clear Y
C3/1363:	8408    	STY $08        ; No-autofire keys
C3/1365:	840A    	STY $0A        ; Semi-auto keys
C3/1367:	60      	RTS

Trigger NMI, allow cursor sound to repeat
C3/1368:	A981    	LDA #$81       ; Stop IRQ timers
C3/136A:	8D0042  	STA $4200      ; On: NMI, joypads
C3/136D:	8524    	STA $24        ; Mark NMI request
C3/136F:	58      	CLI            ; Unmask IRQs
C3/1370:	A524    	LDA $24        ; Back from NMI?
C3/1372:	D0FC    	BNE $1370      ; Loop if not
C3/1374:	78      	SEI            ; Mask IRQs
C3/1375:	A544    	LDA $44        ; Brightness
C3/1377:	8D0021  	STA $2100      ; Apply it now
C3/137A:	A543    	LDA $43        ; Queued HDMA
C3/137C:	8D0C42  	STA $420C      ; Update channels
C3/137F:	A5B5    	LDA $B5        ; Mosaic settings
C3/1381:	8D0621  	STA $2106      ; Apply to screen
C3/1384:	64AE    	STZ $AE        ; Allow SFX repeat
C3/1386:	60      	RTS

Handle NMI (menu, ending)
C3/1387:	08      	PHP            ; ...
C3/1388:	C230    	REP #$30       ; 16-bit A, X, Y
C3/138A:	48      	PHA            ; Save A
C3/138B:	DA      	PHX            ; Save X
C3/138C:	5A      	PHY            ; Save Y
C3/138D:	8B      	PHB            ; Save DB
C3/138E:	0B      	PHD            ; Save DP
C3/138F:	E220    	SEP #$20       ; 8-bit A
C3/1391:	AD1042  	LDA $4210      ; Clear NMI flag
C3/1394:	A900    	LDA #$00       ; Clear A
C3/1396:	48      	PHA            ; Put on stack
C3/1397:	AB      	PLB            ; Set DB to 0
C3/1398:	A20000  	LDX #$0000     ; Clear X
C3/139B:	DA      	PHX            ; Put on stack
C3/139C:	2B      	PLD            ; Set DP to 0
C3/139D:	A524    	LDA $24        ; Manual NMI?
C3/139F:	F010    	BEQ $13B1      ; Branch if not
C3/13A1:	201214  	JSR $1412      ; Refresh screen
C3/13A4:	C220    	REP #$20       ; 16-bit A
C3/13A6:	E6CF    	INC $CF        ; Ending timer +1
C3/13A8:	E220    	SEP #$20       ; 8-bit A
C3/13AA:	A420    	LDY $20        ; Transition timer
C3/13AC:	F003    	BEQ $13B1      ; Ignore if off
C3/13AE:	88      	DEY            ; Timer -1
C3/13AF:	8420    	STY $20        ; Save changes
C3/13B1:	221500C0	JSL $C00015    ; Event timers -1
C3/13B5:	22C813C3	JSL $C313C8    ; Play time +1
C3/13B9:	E623    	INC $23        ; NMI count +1
C3/13BB:	7B      	TDC            ; Clear A
C3/13BC:	8524    	STA $24        ; Unmark manual NMI
C3/13BE:	C230    	REP #$30       ; 16-bit A, X, Y
C3/13C0:	2B      	PLD            ; Restore DP
C3/13C1:	AB      	PLB            ; Restore DB
C3/13C2:	7A      	PLY            ; Restore Y
C3/13C3:	FA      	PLX            ; Restore X
C3/13C4:	68      	PLA            ; Restore A
C3/13C5:	28      	PLP            ; ...
C3/13C6:	40      	RTI

Handle IRQ...
C3/13C7:	40      	RTI

Advance play time (NMI)
C3/13C8:	AD1E02  	LDA $021E      ; Frames
C3/13CB:	C93C    	CMP #$3C       ; 60?
C3/13CD:	F002    	BEQ $13D1      ; +1 sec if so
C3/13CF:	802B    	BRA $13FC      ; +1 frame

Fork: Seconds +1
C3/13D1:	9C1E02  	STZ $021E      ; Frames = 0
C3/13D4:	AD1D02  	LDA $021D      ; Seconds
C3/13D7:	C93B    	CMP #$3B       ; 59?
C3/13D9:	F005    	BEQ $13E0      ; +1 min if so
C3/13DB:	EE1D02  	INC $021D      ; +1 second
C3/13DE:	801C    	BRA $13FC      ; +1 frame

Fork: Minutes +1
C3/13E0:	9C1D02  	STZ $021D      ; Seconds = 0
C3/13E3:	AD1C02  	LDA $021C      ; Minutes
C3/13E6:	C93B    	CMP #$3B       ; 59?
C3/13E8:	F005    	BEQ $13EF      ; +1 hour if so
C3/13EA:	EE1C02  	INC $021C      ; +1 minute
C3/13ED:	800D    	BRA $13FC      ; +1 frame

Fork: Hours +1
C3/13EF:	9C1C02  	STZ $021C      ; Minutes = 0
C3/13F2:	AD1B02  	LDA $021B      ; Hours
C3/13F5:	C963    	CMP #$63       ; 99?
C3/13F7:	F003    	BEQ $13FC      ; Branch if so
C3/13F9:	EE1B02  	INC $021B      ; +1 hour

Fork: Frames +1
C3/13FC:	AD1B02  	LDA $021B      ; Hours
C3/13FF:	C963    	CMP #$63       ; 99?
C3/1401:	D00A    	BNE $140D      ; Branch if not
C3/1403:	AD1C02  	LDA $021C      ; Minutes
C3/1406:	C93B    	CMP #$3B       ; 59?
C3/1408:	D003    	BNE $140D      ; Branch if not
C3/140A:	9C1D02  	STZ $021D      ; Seconds = 0
C3/140D:	EE1E02  	INC $021E      ; +1 frame
C3/1410:	7B      	TDC            ; Clear A
C3/1411:	6B      	RTL

Refresh screen (NMI)
C3/1412:	9C0C42  	STZ $420C      ; Disable HDMA
C3/1415:	9C0B42  	STZ $420B      ; Disable DMA...
C3/1418:	A535    	LDA $35        ; BG1 X-Pos LB
C3/141A:	8D0D21  	STA $210D      ; Apply it now
C3/141D:	A536    	LDA $36        ; BG1 X-Pos HB
C3/141F:	8D0D21  	STA $210D      ; Apply it now
C3/1422:	A537    	LDA $37        ; BG1 Y-Pos LB
C3/1424:	8D0E21  	STA $210E      ; Apply it now
C3/1427:	A538    	LDA $38        ; BG1 Y-Pos HB
C3/1429:	8D0E21  	STA $210E      ; Apply it now
C3/142C:	A539    	LDA $39        ; BG2 X-Pos LB
C3/142E:	8D0F21  	STA $210F      ; Apply it now
C3/1431:	A53A    	LDA $3A        ; BG2 X-Pos HB
C3/1433:	8D0F21  	STA $210F      ; Apply it now
C3/1436:	A53B    	LDA $3B        ; BG2 Y-Pos LB
C3/1438:	8D1021  	STA $2110      ; Apply it now
C3/143B:	A53C    	LDA $3C        ; BG2 Y-Pos HB
C3/143D:	8D1021  	STA $2110      ; Apply it now
C3/1440:	A53D    	LDA $3D        ; BG3 X-Pos LB
C3/1442:	8D1121  	STA $2111      ; Apply it now
C3/1445:	A53E    	LDA $3E        ; BG3 X-Pos HB
C3/1447:	8D1121  	STA $2111      ; Apply it now
C3/144A:	A53F    	LDA $3F        ; BG3 Y-Pos LB
C3/144C:	8D1221  	STA $2112      ; Apply it now
C3/144F:	A540    	LDA $40        ; BG3 Y-Pos HB
C3/1451:	8D1221  	STA $2112      ; Apply it now
C3/1454:	2063D2  	JSR $D263      ; Refresh Mode 7
C3/1457:	206314  	JSR $1463      ; Refresh OAM
C3/145A:	20D214  	JSR $14D2      ; Refresh CGRAM
C3/145D:	208814  	JSR $1488      ; Do VRAM DMA A
C3/1460:	4CAC14  	JMP $14AC      ; Do VRAM DMA B

Refresh OAM (NMI)
C3/1463:	A600    	LDX $00        ; $0000
C3/1465:	8E0221  	STX $2102      ; Set OAM address
C3/1468:	8A      	TXA            ; Bank: 00
C3/1469:	8D0443  	STA $4304      ; Set src HB
C3/146C:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/146E:	8D0043  	STA $4300      ; Set DMA mode
C3/1471:	A904    	LDA #$04       ; $2104
C3/1473:	8D0143  	STA $4301      ; To OAM
C3/1476:	A00003  	LDY #$0300     ; 00/0300
C3/1479:	8C0243  	STY $4302      ; Set src LBs
C3/147C:	A02002  	LDY #$0220     ; Bytes: 544
C3/147F:	8C0543  	STY $4305      ; Set data size
C3/1482:	A901    	LDA #$01       ; Channel: 0
C3/1484:	8D0B42  	STA $420B      ; Move data
C3/1487:	60      	RTS

Handle absolute VRAM transfer (NMI)
C3/1488:	A414    	LDY $14        ; Destination
C3/148A:	8C1621  	STY $2116      ; Set VRAM ptr
C3/148D:	A901    	LDA #$01       ; 2Rx1B to PPU
C3/148F:	8D0043  	STA $4300      ; Set DMA mode
C3/1492:	A918    	LDA #$18       ; $2118
C3/1494:	8D0143  	STA $4301      ; To VRAM
C3/1497:	A416    	LDY $16        ; Source LBs
C3/1499:	8C0243  	STY $4302      ; Set CH0's
C3/149C:	A518    	LDA $18        ; Source HB
C3/149E:	8D0443  	STA $4304      ; Set CH0's
C3/14A1:	A412    	LDY $12        ; Number of bytes
C3/14A3:	8C0543  	STY $4305      ; Set data size
C3/14A6:	A901    	LDA #$01       ; Channel: 0
C3/14A8:	8D0B42  	STA $420B      ; Move data
C3/14AB:	60      	RTS

Handle conditional VRAM transfer (NMI)
C3/14AC:	A41B    	LDY $1B        ; Destination
C3/14AE:	F021    	BEQ $14D1      ; Exit if none
C3/14B0:	8C1621  	STY $2116      ; Set VRAM ptr
C3/14B3:	A901    	LDA #$01       ; 2Rx1B to PPU
C3/14B5:	8D0043  	STA $4300      ; Set DMA mode
C3/14B8:	A918    	LDA #$18       ; $2118
C3/14BA:	8D0143  	STA $4301      ; To VRAM
C3/14BD:	A41D    	LDY $1D        ; Source LBs
C3/14BF:	8C0243  	STY $4302      ; Set CH0's
C3/14C2:	A51F    	LDA $1F        ; Source HB
C3/14C4:	8D0443  	STA $4304      ; Set CH0's
C3/14C7:	A419    	LDY $19        ; Number of bytes
C3/14C9:	8C0543  	STY $4305      ; Set data size
C3/14CC:	A901    	LDA #$01       ; Channel: 0
C3/14CE:	8D0B42  	STA $420B      ; Move data
C3/14D1:	60      	RTS

Refresh CGRAM (NMI)
C3/14D2:	A545    	LDA $45        ; Menu flags
C3/14D4:	8901    	BIT #$01       ; Freeze CGRAM?
C3/14D6:	F025    	BEQ $14FD      ; Exit if so
C3/14D8:	A500    	LDA $00        ; CGRAM: $0000
C3/14DA:	8D2121  	STA $2121      ; To BG color 0
C3/14DD:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/14DF:	8D0043  	STA $4300      ; Set DMA mode
C3/14E2:	A922    	LDA #$22       ; $2122
C3/14E4:	8D0143  	STA $4301      ; To CGRAM
C3/14E7:	A04930  	LDY #$3049     ; 7E/3049
C3/14EA:	8C0243  	STY $4302      ; Set src LBs
C3/14ED:	A97E    	LDA #$7E       ; Bank: 7E
C3/14EF:	8D0443  	STA $4304      ; Set src HB
C3/14F2:	A00002  	LDY #$0200     ; Bytes: 512
C3/14F5:	8C0543  	STY $4305      ; Set data size
C3/14F8:	A901    	LDA #$01       ; Channel: 0
C3/14FA:	8D0B42  	STA $420B      ; Move data
C3/14FD:	60      	RTS

Load save data on defeat
C3/14FE:	AD1F02  	LDA $021F      ; File number
C3/1501:	F011    	BEQ $1514      ; Reset if none
C3/1503:	206615  	JSR $1566      ; Load save file
C3/1506:	20D119  	JSR $19D1      ; Compute checksum
C3/1509:	20EB19  	JSR $19EB      ; Bad checksum?
C3/150C:	F006    	BEQ $1514      ; Reset game if so
C3/150E:	209515  	JSR $1595      ; Move timer data
C3/1511:	7B      	TDC            ; Reset game: No
C3/1512:	8004    	BRA $1518      ; Set aftereffect

Fork: Reset game
C3/1514:	E220    	SEP #$20       ; ...
C3/1516:	A9FF    	LDA #$FF       ; Reset game: Yes
C3/1518:	8D0502  	STA $0205      ; Set aftereffect
C3/151B:	7B      	TDC            ; ...
C3/151C:	6B      	RTL

Record game data
C3/151D:	2903    	AND #$03       ; File number
C3/151F:	8FF07F30	STA $307FF0    ; Set last altered
C3/1523:	8D2402  	STA $0224      ; Set last viewed
C3/1526:	48      	PHA            ; Memorize slot
C3/1527:	AC1B02  	LDY $021B      ; Hrs, mins played
C3/152A:	8C6318  	STY $1863      ; To SRAM block
C3/152D:	AD1D02  	LDA $021D      ; Seconds played
C3/1530:	8D6518  	STA $1865      ; To SRAM block
C3/1533:	208615  	JSR $1586      ; Move timer data
C3/1536:	20D119  	JSR $19D1      ; Compute checksum
C3/1539:	A4E7    	LDY $E7        ; File checksum
C3/153B:	8CFE1F  	STY $1FFE      ; To SRAM block
C3/153E:	7B      	TDC            ; Clear A
C3/153F:	68      	PLA            ; File number
C3/1540:	0A      	ASL A          ; Double it
C3/1541:	AA      	TAX            ; Index it
C3/1542:	C220    	REP #$20       ; 16-bit A
C3/1544:	BF5E15C3	LDA $C3155E,X  ; SRAM pointer
C3/1548:	AA      	TAX            ; Index it
C3/1549:	E220    	SEP #$20       ; 8-bit A
C3/154B:	A400    	LDY $00        ; RAM index: 0
C3/154D:	B90016  	LDA $1600,Y    ; Game data
C3/1550:	9F006030	STA $306000,X  ; Save in SRAM
C3/1554:	E8      	INX            ; SRAM index +1
C3/1555:	C8      	INY            ; RAM index +1
C3/1556:	C0000A  	CPY #$0A00     ; At $2000?
C3/1559:	D0F2    	BNE $154D      ; Loop if not
C3/155B:	4C8370  	JMP $7083      ; Mark all files

SRAM pointers
C3/155E:	0000    	; Bogus...
C3/1560:	0000    	; Save slot 1
C3/1562:	000A    	; Save slot 2
C3/1564:	0014    	; Save slot 3

Load save file
C3/1566:	EB      	XBA            ; Get HB
C3/1567:	A500    	LDA $00        ; Clear it
C3/1569:	EB      	XBA            ; File number
C3/156A:	0A      	ASL A          ; Double it
C3/156B:	AA      	TAX            ; Index it
C3/156C:	C220    	REP #$20       ; 16-bit A
C3/156E:	BF5E15C3	LDA $C3155E,X  ; SRAM pointer
C3/1572:	AA      	TAX            ; Index it
C3/1573:	E220    	SEP #$20       ; 8-bit A
C3/1575:	A400    	LDY $00        ; RAM index: 0
C3/1577:	BF006030	LDA $306000,X  ; Saved data
C3/157B:	990016  	STA $1600,Y    ; Copy to RAM
C3/157E:	E8      	INX            ; SRAM index +1
C3/157F:	C8      	INY            ; RAM index +1
C3/1580:	C0000A  	CPY #$0A00     ; At $2000?
C3/1583:	D0F2    	BNE $1577      ; Loop if not
C3/1585:	60      	RTS

Copy event timer data to save area
C3/1586:	7B      	TDC            ; Clear A
C3/1587:	AA      	TAX            ; Index: 0
C3/1588:	BD8811  	LDA $1188,X    ; Timer data
C3/158B:	9DA81F  	STA $1FA8,X    ; Put in SRAM
C3/158E:	E8      	INX            ; Index +1
C3/158F:	E01800  	CPX #$0018     ; At $11A0?
C3/1592:	D0F4    	BNE $1588      ; Loop if not
C3/1594:	60      	RTS

Restore saved event timer data
C3/1595:	7B      	TDC            ; Clear A
C3/1596:	AA      	TAX            ; Index: 0
C3/1597:	BDA81F  	LDA $1FA8,X    ; Timer data
C3/159A:	9D8811  	STA $1188,X    ; Make active
C3/159D:	E8      	INX            ; Index +1
C3/159E:	E01800  	CPX #$0018     ; At $1FC0?
C3/15A1:	D0F4    	BNE $1597      ; Loop if not
C3/15A3:	60      	RTS

Load navigation data for Save menu
C3/15A4:	A0B315  	LDY #$15B3     ; C3/15B3
C3/15A7:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for Save menu
C3/15AA:	202D07  	JSR $072D      ; Handle D-Pad
C3/15AD:	A0CE15  	LDY #$15CE     ; C3/15CE
C3/15B0:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for Save menu
C3/15B3:	80      	; Wraps vertically
C3/15B4:	00      	; Initial column
C3/15B5:	00      	; Initial row
C3/15B6:	01      	; 1 column
C3/15B7:	03      	; 3 rows

Load navigation data for Load menu
C3/15B8:	A0C715  	LDY #$15C7     ; C3/15C7
C3/15BB:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for Load menu
C3/15BE:	202D07  	JSR $072D      ; Handle D-Pad
C3/15C1:	A0CC15  	LDY #$15CC     ; C3/15CC
C3/15C4:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for Load menu
C3/15C7:	80      	; Wraps vertically
C3/15C8:	00      	; Initial column
C3/15C9:	00      	; Initial row
C3/15CA:	01      	; 1 column
C3/15CB:	04      	; 4 rows

Cursor positions for Save and Load menus
C3/15CC:	081C    	; New Game
C3/15CE:	083C    	; Save file 1
C3/15D0:	0874    	; Save file 2
C3/15D2:	08AC    	; Save file 3

Load navigation data for save file confirmation
C3/15D4:	A0E315  	LDY #$15E3     ; C3/15E3
C3/15D7:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for save file confirmation
C3/15DA:	202D07  	JSR $072D      ; Handle D-Pad
C3/15DD:	A0E815  	LDY #$15E8     ; C3/15E8
C3/15E0:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for save file confirmation
C3/15E3:	80      	; Wraps vertically
C3/15E4:	00      	; Initial column
C3/15E5:	00      	; Initial row
C3/15E6:	01      	; 1 column
C3/15E7:	02      	; 2 rows

Cursor positions for save file confirmation
C3/15E8:	BF44    	; Yes
C3/15EA:	BF54    	; No

Draw Save menu, load skins, list actor sprites
C3/15EC:	20286A  	JSR $6A28      ; Clear BG2 map A
C3/15EF:	203216  	JSR $1632      ; Handle files
C3/15F2:	20873A  	JSR $3A87      ; Load skin visuals
C3/15F5:	A09C18  	LDY #$189C     ; C3/189C
C3/15F8:	204103  	JSR $0341      ; Draw top window
C3/15FB:	A920    	LDA #$20       ; Palette 0
C3/15FD:	8529    	STA $29        ; Color: User's
C3/15FF:	A0781A  	LDY #$1A78     ; Text pointer
C3/1602:	20F902  	JSR $02F9      ; Draw "Save"
C3/1605:	4C9018  	JMP $1890      ; Upload tilemaps

Draw Load menu, load skins, list actor sprites
C3/1608:	20286A  	JSR $6A28      ; Clear BG2 map A
C3/160B:	9C4E1D  	STZ $1D4E      ; Skin: 1st; etc.
C3/160E:	20BC6B  	JSR $6BBC      ; Reset skin colors
C3/1611:	20873A  	JSR $3A87      ; Load skin visuals
C3/1614:	A09C18  	LDY #$189C     ; C3/189C
C3/1617:	204103  	JSR $0341      ; Draw top window
C3/161A:	AD4E1D  	LDA $1D4E      ; Game options
C3/161D:	2970    	AND #$70       ; Reset skin, gauge
C3/161F:	8D4E1D  	STA $1D4E      ; Save changes
C3/1622:	203216  	JSR $1632      ; Handle files
C3/1625:	A920    	LDA #$20       ; Palette 0
C3/1627:	8529    	STA $29        ; Color: User's
C3/1629:	A07F1A  	LDY #$1A7F     ; Text pointer
C3/162C:	20F902  	JSR $02F9      ; Draw "New Game"
C3/162F:	4C9018  	JMP $1890      ; Upload tilemaps

Output all save files
C3/1632:	20606C  	JSR $6C60      ; Load grayscale
C3/1635:	A920    	LDA #$20       ; Channel: 5
C3/1637:	1443    	TRB $43        ; Halt HDMA-5
C3/1639:	A00200  	LDY #$0002     ; Y: 2
C3/163C:	8437    	STY $37        ; Set BG1 Y-Pos
C3/163E:	AC551D  	LDY $1D55      ; User font color
C3/1641:	84E7    	STY $E7        ; Memorize it
C3/1643:	A0FF7F  	LDY #$7FFF     ; Color: White
C3/1646:	8C551D  	STY $1D55      ; Set user's font
C3/1649:	20993F  	JSR $3F99      ; Put in palettes
C3/164C:	A4E7    	LDY $E7        ; Original color
C3/164E:	8C551D  	STY $1D55      ; Restore config
C3/1651:	A901    	LDA #$01       ; Gradient set: 1
C3/1653:	221DCAD4	JSL $D4CA1D    ; Create gradient
C3/1657:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/165A:	203C6A  	JSR $6A3C      ; Clear BG3 map A
C3/165D:	20466A  	JSR $6A46      ; Clear BG3 map C
C3/1660:	20AC18  	JSR $18AC      ; Move game's SRAM

Fork: Load save file 1
C3/1663:	A901    	LDA #$01       ; File: 1
C3/1665:	8566    	STA $66        ; ...
C3/1667:	206615  	JSR $1566      ; Load save file
C3/166A:	201569  	JSR $6915      ; Move party info
C3/166D:	20D119  	JSR $19D1      ; Compute checksum
C3/1670:	20EB19  	JSR $19EB      ; Test validity
C3/1673:	8491    	STY $91        ; Save checksum
C3/1675:	F00B    	BEQ $1682      ; Branch if invalid
C3/1677:	20616F  	JSR $6F61      ; List char sprites
C3/167A:	201D17  	JSR $171D      ; Draw file 1 text
C3/167D:	20F53A  	JSR $3AF5      ; Load skin colors
C3/1680:	8013    	BRA $1695      ; Handle file 2

Fork: Blank file 1
C3/1682:	20C118  	JSR $18C1      ; Restore skin 1
C3/1685:	20616F  	JSR $6F61      ; Use blank party
C3/1688:	A920    	LDA #$20       ; Palette 0
C3/168A:	8529    	STA $29        ; Color: White
C3/168C:	A0241A  	LDY #$1A24     ; Text pointer
C3/168F:	20F902  	JSR $02F9      ; Draw "Empty"
C3/1692:	20F53A  	JSR $3AF5      ; Load skin 1 pal

Fork: Load save file 2
C3/1695:	A902    	LDA #$02       ; File: 2
C3/1697:	8566    	STA $66        ; ...
C3/1699:	206615  	JSR $1566      ; Load save file
C3/169C:	201569  	JSR $6915      ; Move party info
C3/169F:	20D119  	JSR $19D1      ; Compute checksum
C3/16A2:	20EB19  	JSR $19EB      ; Test validity
C3/16A5:	8493    	STY $93        ; Save checksum
C3/16A7:	F00B    	BEQ $16B4      ; Branch if invalid
C3/16A9:	20B86F  	JSR $6FB8      ; List char sprites
C3/16AC:	20CA17  	JSR $17CA      ; Draw file 2 text
C3/16AF:	20093B  	JSR $3B09      ; Load skin colors
C3/16B2:	8013    	BRA $16C7      ; Handle file 3

Fork: Blank file 2
C3/16B4:	20C118  	JSR $18C1      ; Restore skin 1
C3/16B7:	20B86F  	JSR $6FB8      ; Use blank party
C3/16BA:	A920    	LDA #$20       ; Palette 0
C3/16BC:	8529    	STA $29        ; Color: White
C3/16BE:	A02C1A  	LDY #$1A2C     ; Text pointer
C3/16C1:	20F902  	JSR $02F9      ; Draw "Empty"
C3/16C4:	20093B  	JSR $3B09      ; Load skin 1 pal

Fork: Load save file 3
C3/16C7:	A903    	LDA #$03       ; File: 3
C3/16C9:	8566    	STA $66        ; ...
C3/16CB:	206615  	JSR $1566      ; Load save file
C3/16CE:	201569  	JSR $6915      ; Move party info
C3/16D1:	20D119  	JSR $19D1      ; Compute checksum
C3/16D4:	20EB19  	JSR $19EB      ; Test validity
C3/16D7:	8495    	STY $95        ; Save checksum
C3/16D9:	F00B    	BEQ $16E6      ; Branch if invalid
C3/16DB:	20DC6F  	JSR $6FDC      ; List char sprites
C3/16DE:	202D18  	JSR $182D      ; Draw file 3 text
C3/16E1:	201D3B  	JSR $3B1D      ; Load skin colors
C3/16E4:	8013    	BRA $16F9      ; Draw all windows

Fork: Blank file 3
C3/16E6:	20C118  	JSR $18C1      ; Restore skin 1
C3/16E9:	20DC6F  	JSR $6FDC      ; Use blank party
C3/16EC:	A920    	LDA #$20       ; Palette 0
C3/16EE:	8529    	STA $29        ; Color: White
C3/16F0:	A0341A  	LDY #$1A34     ; Text pointer
C3/16F3:	20F902  	JSR $02F9      ; Draw "Empty"
C3/16F6:	201D3B  	JSR $3B1D      ; Load skin 1 pal

Fork: Draw windows and upload skins
C3/16F9:	20C118  	JSR $18C1      ; Restore SRAM
C3/16FC:	20A13A  	JSR $3AA1      ; Upload skin A
C3/16FF:	A0A018  	LDY #$18A0     ; C3/18A0
C3/1702:	204103  	JSR $0341      ; Draw window A
C3/1705:	20BD3A  	JSR $3ABD      ; Upload skin B
C3/1708:	A0A418  	LDY #$18A4     ; C3/18A4
C3/170B:	204103  	JSR $0341      ; Draw window B
C3/170E:	20D93A  	JSR $3AD9      ; Upload skin C
C3/1711:	A0A818  	LDY #$18A8     ; C3/18A8
C3/1714:	204103  	JSR $0341      ; Draw window C
C3/1717:	A0001C  	LDY #$1C00     ; Palette: 7
C3/171A:	4C2603  	JMP $0326      ; Build skin map

Draw all text for save file 1
C3/171D:	A920    	LDA #$20       ; Palette 0
C3/171F:	8529    	STA $29        ; Color: White
C3/1721:	A0511A  	LDY #$1A51     ; Text pointer
C3/1724:	20F902  	JSR $02F9      ; Draw ":"
C3/1727:	AD6318  	LDA $1863      ; Hours played
C3/172A:	20E004  	JSR $04E0      ; Turn into text
C3/172D:	A20D7B  	LDX #$7B0D     ; Text position
C3/1730:	20B604  	JSR $04B6      ; Draw hours
C3/1733:	AD6418  	LDA $1864      ; Minutes played
C3/1736:	20F904  	JSR $04F9      ; Turn into text
C3/1739:	A2137B  	LDX #$7B13     ; Text position
C3/173C:	20B604  	JSR $04B6      ; Draw minutes
C3/173F:	204D17  	JSR $174D      ; Draw leader info
C3/1742:	A92C    	LDA #$2C       ; Palette 3
C3/1744:	8529    	STA $29        ; Color: Blue
C3/1746:	A03C1A  	LDY #$1A3C     ; Text pointer
C3/1749:	20F902  	JSR $02F9      ; Draw "Time"
C3/174C:	60      	RTS

Draw leader info for save file 1
C3/174D:	7B      	TDC            ; Clear A
C3/174E:	AA      	TAX            ; 1st: Member 1
C3/174F:	B569    	LDA $69,X      ; Actor in slot
C3/1751:	3029    	BMI $177C      ; Skip if empty
C3/1753:	20BE17  	JSR $17BE      ; Get its address
C3/1756:	A92C    	LDA #$2C       ; Palette 3
C3/1758:	8529    	STA $29        ; Color: Blue
C3/175A:	A05D1A  	LDY #$1A5D     ; Text pointer
C3/175D:	20F902  	JSR $02F9      ; Draw "LV"
C3/1760:	A920    	LDA #$20       ; Palette 0
C3/1762:	8529    	STA $29        ; Color: White
C3/1764:	A06C1A  	LDY #$1A6C     ; Text pointer
C3/1767:	20F902  	JSR $02F9      ; Draw "/"
C3/176A:	A04F3A  	LDY #$3A4F     ; Text position
C3/176D:	5A      	PHY            ; Set name's
C3/176E:	A2FD7A  	LDX #$7AFD     ; Text position
C3/1771:	DA      	PHX            ; Set max HP's
C3/1772:	A2F37A  	LDX #$7AF3     ; Text position
C3/1775:	DA      	PHX            ; Set HP's
C3/1776:	A2817A  	LDX #$7A81     ; Text position
C3/1779:	DA      	PHX            ; Set level's
C3/177A:	8003    	BRA $177F      ; Draw stats
C3/177C:	E8      	INX            ; Member slot +1
C3/177D:	80D0    	BRA $174F      ; Try next member

Draw leader's stats over save file
C3/177F:	A667    	LDX $67        ; Actor's address
C3/1781:	BD0800  	LDA $0008,X    ; Level
C3/1784:	20E004  	JSR $04E0      ; Turn into text
C3/1787:	FA      	PLX            ; Text position
C3/1788:	20B604  	JSR $04B6      ; Draw 2 digits
C3/178B:	A467    	LDY $67        ; Actor's address
C3/178D:	209A2B  	JSR $2B9A      ; Truncate HP
C3/1790:	B90900  	LDA $0009,Y    ; HP LB
C3/1793:	85F3    	STA $F3        ; Memorize it
C3/1795:	B90A00  	LDA $000A,Y    ; HP HB
C3/1798:	85F4    	STA $F4        ; Memorize it
C3/179A:	202E05  	JSR $052E      ; Turn into text
C3/179D:	FA      	PLX            ; Text position
C3/179E:	209004  	JSR $0490      ; Draw 4 digits
C3/17A1:	A667    	LDX $67        ; Actor address
C3/17A3:	BD0B00  	LDA $000B,X    ; Max HP LB
C3/17A6:	85F3    	STA $F3        ; Memorize it
C3/17A8:	BD0C00  	LDA $000C,X    ; Max HP HB
C3/17AB:	85F4    	STA $F4        ; Memorize it
C3/17AD:	20650D  	JSR $0D65      ; Add gear bonus
C3/17B0:	20920D  	JSR $0D92      ; Cap at 9999
C3/17B3:	202E05  	JSR $052E      ; Turn into text
C3/17B6:	FA      	PLX            ; Text position
C3/17B7:	209004  	JSR $0490      ; Draw 4 digits
C3/17BA:	7A      	PLY            ; Text position
C3/17BB:	4CCF34  	JMP $34CF      ; Draw actor name

Get member's SRAM block address
C3/17BE:	C220    	REP #$20       ; 16-bit A
C3/17C0:	8A      	TXA            ; Member slot
C3/17C1:	0A      	ASL A          ; Double it
C3/17C2:	AA      	TAX            ; Index it
C3/17C3:	B56D    	LDA $6D,X      ; SRAM address
C3/17C5:	8567    	STA $67        ; Save for later
C3/17C7:	E220    	SEP #$20       ; 8-bit A
C3/17C9:	60      	RTS

Draw all text for save file 2
C3/17CA:	A920    	LDA #$20       ; Palette 0
C3/17CC:	8529    	STA $29        ; Color: White
C3/17CE:	A0551A  	LDY #$1A55     ; Text pointer
C3/17D1:	20F902  	JSR $02F9      ; Draw ":"
C3/17D4:	AD6318  	LDA $1863      ; Hours played
C3/17D7:	20E004  	JSR $04E0      ; Turn into text
C3/17DA:	A2CD7C  	LDX #$7CCD     ; Text position
C3/17DD:	20B604  	JSR $04B6      ; Draw 2 digits
C3/17E0:	AD6418  	LDA $1864      ; Minutes played
C3/17E3:	20F904  	JSR $04F9      ; Turn into text
C3/17E6:	A2D37C  	LDX #$7CD3     ; Text position
C3/17E9:	20B604  	JSR $04B6      ; Draw 2 digits
C3/17EC:	20FA17  	JSR $17FA      ; Draw leader info
C3/17EF:	A92C    	LDA #$2C       ; Palette 3
C3/17F1:	8529    	STA $29        ; Color: Blue
C3/17F3:	A0431A  	LDY #$1A43     ; Text pointer
C3/17F6:	20F902  	JSR $02F9      ; Draw "Time"
C3/17F9:	60      	RTS

Draw leader info for save file 2
C3/17FA:	7B      	TDC            ; Clear A
C3/17FB:	AA      	TAX            ; 1st: Member 1
C3/17FC:	B569    	LDA $69,X      ; Actor in slot
C3/17FE:	302A    	BMI $182A      ; Skip if empty
C3/1800:	20BE17  	JSR $17BE      ; Get its address
C3/1803:	A92C    	LDA #$2C       ; Palette 3
C3/1805:	8529    	STA $29        ; Color: Blue
C3/1807:	A0621A  	LDY #$1A62     ; Text pointer
C3/180A:	20F902  	JSR $02F9      ; Draw "LV"
C3/180D:	A920    	LDA #$20       ; Palette 0
C3/180F:	8529    	STA $29        ; Color: White
C3/1811:	A0701A  	LDY #$1A70     ; Text pointer
C3/1814:	20F902  	JSR $02F9      ; Draw "/"
C3/1817:	A00F3C  	LDY #$3C0F     ; Text position
C3/181A:	5A      	PHY            ; Set name's
C3/181B:	A2BD7C  	LDX #$7CBD     ; Text position
C3/181E:	DA      	PHX            ; Set max HP's
C3/181F:	A2B37C  	LDX #$7CB3     ; Text position
C3/1822:	DA      	PHX            ; Set HP's
C3/1823:	A2417C  	LDX #$7C41     ; Text position
C3/1826:	DA      	PHX            ; Set level's
C3/1827:	4C7F17  	JMP $177F      ; Draw stats
C3/182A:	E8      	INX            ; Member slot +1
C3/182B:	80CF    	BRA $17FC      ; Try next member

Draw all text for save file 3
C3/182D:	A920    	LDA #$20       ; Palette 0
C3/182F:	8529    	STA $29        ; Color: White
C3/1831:	A0591A  	LDY #$1A59     ; Text pointer
C3/1834:	20F902  	JSR $02F9      ; Draw ":"
C3/1837:	AD6318  	LDA $1863      ; Hours played
C3/183A:	20E004  	JSR $04E0      ; Turn into text
C3/183D:	A28D7E  	LDX #$7E8D     ; Text position
C3/1840:	20B604  	JSR $04B6      ; Draw 2 digits
C3/1843:	AD6418  	LDA $1864      ; Minutes played
C3/1846:	20F904  	JSR $04F9      ; Turn into text
C3/1849:	A2937E  	LDX #$7E93     ; Text position
C3/184C:	20B604  	JSR $04B6      ; Draw 2 digits
C3/184F:	205D18  	JSR $185D      ; Draw leader info
C3/1852:	A92C    	LDA #$2C       ; Palette 3
C3/1854:	8529    	STA $29        ; Color: Blue
C3/1856:	A04A1A  	LDY #$1A4A     ; Text pointer
C3/1859:	20F902  	JSR $02F9      ; Draw "Time"
C3/185C:	60      	RTS

Draw leader info for save file 3
C3/185D:	7B      	TDC            ; Clear A
C3/185E:	AA      	TAX            ; 1st: Member 1
C3/185F:	B569    	LDA $69,X      ; Actor in slot
C3/1861:	302A    	BMI $188D      ; Skip if empty
C3/1863:	20BE17  	JSR $17BE      ; Get its address
C3/1866:	A92C    	LDA #$2C       ; Palette 3
C3/1868:	8529    	STA $29        ; Color: Blue
C3/186A:	A0671A  	LDY #$1A67     ; Text pointer
C3/186D:	20F902  	JSR $02F9      ; Draw "LV"
C3/1870:	A920    	LDA #$20       ; Palette 0
C3/1872:	8529    	STA $29        ; Color: White
C3/1874:	A0741A  	LDY #$1A74     ; Text pointer
C3/1877:	20F902  	JSR $02F9      ; Draw "/"
C3/187A:	A0CF3D  	LDY #$3DCF     ; Text position
C3/187D:	5A      	PHY            ; Set name's
C3/187E:	A27D7E  	LDX #$7E7D     ; Text position
C3/1881:	DA      	PHX            ; Set max HP's
C3/1882:	A2737E  	LDX #$7E73     ; Text position
C3/1885:	DA      	PHX            ; Set HP's
C3/1886:	A2017E  	LDX #$7E01     ; Text position
C3/1889:	DA      	PHX            ; Set level's
C3/188A:	4C7F17  	JMP $177F      ; Draw stats
C3/188D:	E8      	INX            ; Member slot +1
C3/188E:	80CF    	BRA $185F      ; Try next member

Upload tilemaps for Save or Load menu
C3/1890:	20280E  	JSR $0E28      ; Upload BG1 A+B
C3/1893:	20520E  	JSR $0E52      ; Upload BG2 A+B
C3/1896:	206E0E  	JSR $0E6E      ; Upload BG3 A+B
C3/1899:	4C7C0E  	JMP $0E7C      ; Upload BG3 C+D

Window layout for Save and Load menus
C3/189C:	CB581C02	; 30x4 at $58CB (Top window)
C3/18A0:	CB591C05	; 30x7 at $59CB (File A)
C3/18A4:	8B5B1C05	; 30x7 at $5B8B (File B)
C3/18A8:	4B5D1C05	; 30x7 at $5D4B (File C)

Back up SRAM block
C3/18AC:	A08DAC  	LDY #$AC8D     ; 7E/AC8D
C3/18AF:	8C8121  	STY $2181      ; Set WRAM LBs
C3/18B2:	A600    	LDX $00        ; Index: 0
C3/18B4:	BD0016  	LDA $1600,X    ; SRAM data
C3/18B7:	8D8021  	STA $2180      ; Put in WRAM
C3/18BA:	E8      	INX            ; Index +1
C3/18BB:	E0000A  	CPX #$0A00     ; At $2000?
C3/18BE:	D0F4    	BNE $18B4      ; Loop if not
C3/18C0:	60      	RTS

Restore SRAM block
C3/18C1:	A600    	LDX $00        ; Index: 0
C3/18C3:	BF8DAC7E	LDA $7EAC8D,X  ; Data backup
C3/18C7:	9D0016  	STA $1600,X    ; Restore it
C3/18CA:	E8      	INX            ; Index +1
C3/18CB:	E0000A  	CPX #$0A00     ; At 7E/B68D?
C3/18CE:	D0F3    	BNE $18C3      ; Loop if not
C3/18D0:	60      	RTS

Set to condense BG3 text (save file confirmation, Colosseum matchup)
C3/18D1:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/18D3:	8D5043  	STA $4350      ; Set DMA mode
C3/18D6:	A912    	LDA #$12       ; $2112
C3/18D8:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/18DB:	A0F018  	LDY #$18F0     ; C3/18F0
C3/18DE:	8C5243  	STY $4352      ; Set src LBs
C3/18E1:	A9C3    	LDA #$C3       ; Bank: C3
C3/18E3:	8D5443  	STA $4354      ; Set src HB
C3/18E6:	A9C3    	LDA #$C3       ; ...
C3/18E8:	8D5743  	STA $4357      ; Set indir HB
C3/18EB:	A920    	LDA #$20       ; Channel: 5
C3/18ED:	0443    	TSB $43        ; Queue HDMA-5
C3/18EF:	60      	RTS

Text shifting table for the above
C3/18F0:	20 0000 	; 32 lines, shift by 0 px
C3/18F3:	0C 0400 	; 12 lines, shift by 4 px
C3/18F6:	0C 0800 	; 12 lines, shift by 8 px
C3/18F9:	08 C8FF 	; 8 lines, shift by -38 px
C3/18FC:	50 0000 	; 80 lines, shift by 0 px
C3/18FF:	58 0000 	; 88 lines, shift by 0 px
C3/1902:	00      	; End

Create actor sprites for Save or Load menu
C3/1903:	A600    	LDX $00        ; Actor slot: 1
C3/1905:	BF71AA7E	LDA $7EAA71,X  ; Empty slot?
C3/1909:	306C    	BMI $1977      ; Skip if so
C3/190B:	DA      	PHX            ; Save slot
C3/190C:	DA      	PHX            ; Save slot
C3/190D:	A903    	LDA #$03       ; Min slot: 24
C3/190F:	A0C719  	LDY #$19C7     ; C3/19C7
C3/1912:	207311  	JSR $1173      ; Queue OAM fn
C3/1915:	9B      	TXY            ; Queue index
C3/1916:	FA      	PLX            ; Actor slot
C3/1917:	8B      	PHB            ; Save DB
C3/1918:	A97E    	LDA #$7E       ; Bank: 7E
C3/191A:	48      	PHA            ; Put on stack
C3/191B:	AB      	PLB            ; Set DB to 7E
C3/191C:	A566    	LDA $66        ; On "New Game"?
C3/191E:	F011    	BEQ $1931      ; Branch if so
C3/1920:	C901    	CMP #$01       ; On file 1?
C3/1922:	F01F    	BEQ $1943      ; Branch if so
C3/1924:	C902    	CMP #$02       ; On file 2?
C3/1926:	F012    	BEQ $193A      ; Branch if so
C3/1928:	BFBB19C3	LDA $C319BB,X  ; OAM complements
C3/192C:	994937  	STA $3749,Y    ; Set sprite's
C3/192F:	8019    	BRA $194A      ; Set coords/ptr

Fork: New Game
C3/1931:	BF9719C3	LDA $C31997,X  ; OAM complements
C3/1935:	994937  	STA $3749,Y    ; Set sprite's
C3/1938:	8010    	BRA $194A      ; Set coords/ptr

Fork: Save file 2
C3/193A:	BFAF19C3	LDA $C319AF,X  ; OAM complements
C3/193E:	994937  	STA $3749,Y    ; Set sprite's
C3/1941:	8007    	BRA $194A      ; Set coords/ptr

Fork: Save file 1
C3/1943:	BFA319C3	LDA $C319A3,X  ; OAM complements
C3/1947:	994937  	STA $3749,Y    ; Set sprite's
C3/194A:	A9D8    	LDA #$D8       ; Bank: D8
C3/194C:	99CA35  	STA $35CA,Y    ; Set anim ptr HB
C3/194F:	7B      	TDC            ; Clear A
C3/1950:	99CB33  	STA $33CB,Y    ; No use...
C3/1953:	994B34  	STA $344B,Y    ; No use...
C3/1956:	BF7F19C3	LDA $C3197F,X  ; X position
C3/195A:	99CA33  	STA $33CA,Y    ; Set sprite's
C3/195D:	BF8B19C3	LDA $C3198B,X  ; Y position
C3/1961:	994A34  	STA $344A,Y    ; Set sprite's
C3/1964:	BF71AA7E	LDA $7EAA71,X  ; Graphics set
C3/1968:	C220    	REP #$20       ; 16-bit A
C3/196A:	0A      	ASL A          ; Double it
C3/196B:	AA      	TAX            ; Index it
C3/196C:	BF17E9D8	LDA $D8E917,X  ; Anim table ptr
C3/1970:	99C932  	STA $32C9,Y    ; Set sprite's
C3/1973:	E220    	SEP #$20       ; 8-bit A
C3/1975:	AB      	PLB            ; Restore DB
C3/1976:	FA      	PLX            ; Actor slot
C3/1977:	E8      	INX            ; Point to next
C3/1978:	E00C00  	CPX #$000C     ; Done all 12?
C3/197B:	D088    	BNE $1905      ; Loop if not
C3/197D:	38      	SEC            ; ...
C3/197E:	60      	RTS

X positions for actors on save files
C3/197F:	50 68 80 98	; File 1
C3/1983:	50 68 80 98	; File 2
C3/1987:	50 68 80 98	; File 3

Y positions for actors on save files
C3/198B:	40 40 40 40	; File 1
C3/198F:	78 78 78 78	; File 2
C3/1993:	B0 B0 B0 B0	; File 3

Actors' OAM complements when on "New Game"
C3/1997:	02 02 02 02	; File 1: Grayscale
C3/199B:	02 02 02 02	; File 2: Grayscale
C3/199F:	02 02 02 02	; File 3: Grayscale

Actors' OAM complements when on save file 1
C3/19A3:	00 00 00 00	; File 1: None
C3/19A7:	02 02 02 02	; File 2: Grayscale
C3/19AB:	02 02 02 02	; File 3: Grayscale

Actors' OAM complements when on save file 2
C3/19AF:	02 02 02 02	; File 1: Grayscale
C3/19B3:	00 00 00 00	; File 2: None
C3/19B7:	02 02 02 02	; File 3: Grayscale

Actors' OAM complements when on save file 3
C3/19BB:	02 02 02 02	; File 1: Grayscale
C3/19BF:	02 02 02 02	; File 2: Grayscale
C3/19C3:	00 00 00 00	; File 3: None

Display actor's sprite on save file
C3/19C7:	A62D    	LDX $2D        ; Queue index
C3/19C9:	200612  	JSR $1206      ; Set pose timer
C3/19CC:	202112  	JSR $1221      ; Define OAM
C3/19CF:	18      	CLC            ; Set to dequeue
C3/19D0:	60      	RTS

Compute SRAM checksum
C3/19D1:	64E7    	STZ $E7        ; Sum LB: 0
C3/19D3:	64E8    	STZ $E8        ; Sum HB: 0
C3/19D5:	A600    	LDX $00        ; Index: 0
C3/19D7:	18      	CLC            ; Prepare ADC
C3/19D8:	BD0016  	LDA $1600,X    ; SRAM data
C3/19DB:	65E7    	ADC $E7        ; Add sum LB
C3/19DD:	85E7    	STA $E7        ; Set sum LB
C3/19DF:	7B      	TDC            ; Clear A
C3/19E0:	65E8    	ADC $E8        ; Add HB + C
C3/19E2:	85E8    	STA $E8        ; Set sum HB
C3/19E4:	E8      	INX            ; Index +1
C3/19E5:	E0FE09  	CPX #$09FE     ; At checksum?
C3/19E8:	D0EE    	BNE $19D8      ; Loop if not
C3/19EA:	60      	RTS

Load and validate SRAM checksum (buggy if zero)
C3/19EB:	C220    	REP #$20       ; 16-bit A
C3/19ED:	A5E7    	LDA $E7        ; Actual checksum
C3/19EF:	CDFE1F  	CMP $1FFE      ; Sum in save file
C3/19F2:	D002    	BNE $19F6      ; Use 0 if unalike
C3/19F4:	8001    	BRA $19F7      ; Skip a line
C3/19F6:	7B      	TDC            ; Clear checksum
C3/19F7:	A8      	TAY            ; Put sum in Y
C3/19F8:	E220    	SEP #$20       ; 8-bit A
C3/19FA:	60      	RTS

53: Queue fade-out for save menu
C3/19FB:	204F30  	JSR $304F      ; Queue fade-out
C3/19FE:	A00800  	LDY #$0008     ; Frames: 8
C3/1A01:	8420    	STY $20        ; Set fade timer
C3/1A03:	A954    	LDA #$54       ; C3/1A19
C3/1A05:	8526    	STA $26        ; Next: Wait
C3/1A07:	4C0319  	JMP $1903      ; Refresh actors

52: Queue fade-in for save menu
C3/1A0A:	205630  	JSR $3056      ; Queue fade-in
C3/1A0D:	A00800  	LDY #$0008     ; Frames: 8
C3/1A10:	8420    	STY $20        ; Set fade timer
C3/1A12:	A954    	LDA #$54       ; C3/1A19
C3/1A14:	8526    	STA $26        ; Next: Wait
C3/1A16:	4C0319  	JMP $1903      ; Create actors

54: Wait while save menu fades in or out
C3/1A19:	A420    	LDY $20        ; Timer expired?
C3/1A1B:	D004    	BNE $1A21      ; Branch if not
C3/1A1D:	A527    	LDA $27        ; Queued command
C3/1A1F:	8526    	STA $26        ; Execute it next
C3/1A21:	4C0319  	JMP $1903      ; Refresh actors

Positioned text for save menus
C3/1A24:	4F7A 84A6A9ADB200              ; Empty
C3/1A2C:	0F7C 84A6A9ADB200              ; Empty
C3/1A34:	CF7D 84A6A9ADB200              ; Empty
C3/1A3C:	CF7A 93A2A69E00                ; Time
C3/1A43:	8F7C 93A2A69E00                ; Time
C3/1A4A:	4F7E 93A2A69E00                ; Time
C3/1A51:	117B C100                      ; :
C3/1A55:	D17C C100                      ; :
C3/1A59:	917E C100                      ; :
C3/1A5D:	7B7A 8B9500                    ; LV
C3/1A62:	3B7C 8B9500                    ; LV
C3/1A67:	FB7D 8B9500                    ; LV
C3/1A6C:	FB7A C000                      ; /
C3/1A70:	BB7C C000                      ; /
C3/1A74:	7B7E C000                      ; /
C3/1A78:	6779 929AAF9E00                ; Save
C3/1A7F:	6379 8D9EB0FF869AA69E00        ; New Game

04: Initialize main menu
C3/1A8A:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/1A8D:	20A81B  	JSR $1BA8      ; Load portraits
C3/1A90:	20890F  	JSR $0F89      ; Stop VRAM DMA B
C3/1A93:	206B3A  	JSR $3A6B      ; Set Win2 bounds
C3/1A96:	A904    	LDA #$04       ; Channel: 2
C3/1A98:	0443    	TSB $43        ; Queue Win1 HDMA
C3/1A9A:	20890F  	JSR $0F89      ; Again...
C3/1A9D:	200469  	JSR $6904      ; Reset BGs' X/Y
C3/1AA0:	A903    	LDA #$03       ; 64x64 at $0000
C3/1AA2:	8D0721  	STA $2107      ; Set BG1 map loc
C3/1AA5:	A943    	LDA #$43       ; 64x64 at $4000
C3/1AA7:	8D0921  	STA $2109      ; Set BG3 map loc
C3/1AAA:	A9C0    	LDA #$C0       ; Channels: 6, 7
C3/1AAC:	1443    	TRB $43        ; Halt HDMA 6+7
C3/1AAE:	A902    	LDA #$02       ; Main cursor: On
C3/1AB0:	8546    	STA $46        ; Bar/Blinker: Off
C3/1AB2:	20F530  	JSR $30F5      ; Draw menu
C3/1AB5:	A900    	LDA #$00       ; Min slot: 0
C3/1AB7:	A0422F  	LDY #$2F42     ; C3/2F42
C3/1ABA:	207311  	JSR $1173      ; Queue D-Pad fn
C3/1ABD:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/1AC0:	204E35  	JSR $354E      ; HDMA: MS desig.
C3/1AC3:	A00200  	LDY #$0002     ; Y: 2
C3/1AC6:	8437    	STY $37        ; Set BG1 Y-Pos
C3/1AC8:	20A336  	JSR $36A3      ; Set to shift BG3
C3/1ACB:	A905    	LDA #$05       ; C3/1DA4
C3/1ACD:	8527    	STA $27        ; Queue: Sustain menu
C3/1ACF:	A901    	LDA #$01       ; C3/1D7E
C3/1AD1:	8526    	STA $26        ; Next: Fade-in
C3/1AD3:	4C4135  	JMP $3541      ; BRT:1 + NMI

07: Initialize Item menu
C3/1AD6:	20E21A  	JSR $1AE2      ; Init list vars
C3/1AD9:	20FE1A  	JSR $1AFE      ; Draw menu; cursor
C3/1ADC:	200E1B  	JSR $1B0E      ; Shift & OBJ & Fade
C3/1ADF:	4C2E1B  	JMP $1B2E      ; Queue: Choice 1

Initialize item list variables (Item, Colosseum)
C3/1AE2:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/1AE5:	20991B  	JSR $1B99      ; Queue desc anim
C3/1AE8:	200469  	JSR $6904      ; Reset BGs' X/Y
C3/1AEB:	644A    	STZ $4A        ; List scroll: 0
C3/1AED:	6449    	STZ $49        ; Top BG1 WR row: 1
C3/1AEF:	A9F5    	LDA #$F5       ; Top row: Slot 246
C3/1AF1:	855C    	STA $5C        ; Set scroll limit
C3/1AF3:	A90A    	LDA #$0A       ; Onscreen rows: 10
C3/1AF5:	855A    	STA $5A        ; Set rows per page
C3/1AF7:	A901    	LDA #$01       ; Onscreen cols: 1
C3/1AF9:	855B    	STA $5B        ; Set cols per page
C3/1AFB:	4C1C7D  	JMP $7D1C      ; Load navig data

Draw Item menu, position cursor in inventory
C3/1AFE:	AD4E1D  	LDA $1D4E      ; Game options
C3/1B01:	2940    	AND #$40       ; Cursor memory?
C3/1B03:	F003    	BEQ $1B08      ; Branch if not
C3/1B05:	20AC0D  	JSR $0DAC      ; Restore cursor
C3/1B08:	20257D  	JSR $7D25      ; Relocate cursor
C3/1B0B:	4CA37D  	JMP $7DA3      ; Draw menu; elems

Initiate text shifting, sprites, fade-in (Item, Colosseum)
C3/1B0E:	202B7E  	JSR $7E2B      ; Set to shift text
C3/1B11:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/1B14:	201F09  	JSR $091F      ; Create scrollbar
C3/1B17:	C220    	REP #$20       ; 16-bit A
C3/1B19:	A97000  	LDA #$0070     ; V-Speed: 0.44 px
C3/1B1C:	9F4A357E	STA $7E354A,X  ; Set scrollbar's
C3/1B20:	A95800  	LDA #$0058     ; Y: 88
C3/1B23:	9FCA347E	STA $7E34CA,X  ; Set scrollbar's
C3/1B27:	E220    	SEP #$20       ; 8-bit A
C3/1B29:	A901    	LDA #$01       ; C3/1D7E
C3/1B2B:	8526    	STA $26        ; Next: Fade-in
C3/1B2D:	60      	RTS

Queue Item menu choice 1, prepare fade-in
C3/1B2E:	A908    	LDA #$08       ; C3/1EF7
C3/1B30:	8527    	STA $27        ; Queue: Choice 1
C3/1B32:	4C4135  	JMP $3541      ; BRT:1 + NMI

77: Return from item usage menu
C3/1B35:	20E21A  	JSR $1AE2      ; Init list vars
C3/1B38:	A58E    	LDA $8E        ; Old cursor column
C3/1B3A:	854D    	STA $4D        ; Set onscreen col
C3/1B3C:	A48E    	LDY $8E        ; Old cursor loc
C3/1B3E:	844F    	STY $4F        ; Set as current
C3/1B40:	A590    	LDA $90        ; Old scroll pos
C3/1B42:	854A    	STA $4A        ; Set as current
C3/1B44:	A54A    	LDA $4A        ; ...
C3/1B46:	85E0    	STA $E0        ; Memorize it...
C3/1B48:	A550    	LDA $50        ; List row
C3/1B4A:	38      	SEC            ; Prepare SBC
C3/1B4B:	E5E0    	SBC $E0        ; Sub scroll pos
C3/1B4D:	854E    	STA $4E        ; Set cursor row
C3/1B4F:	20257D  	JSR $7D25      ; Relocate cursor
C3/1B52:	20A37D  	JSR $7DA3      ; Draw menu; elems
C3/1B55:	200E1B  	JSR $1B0E      ; Shift & OBJ & Fade
C3/1B58:	4C2E1B  	JMP $1B2E      ; Queue: Choice 1

09: Initialize Skills menu
C3/1B5B:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/1B5E:	7B      	TDC            ; Clear A
C3/1B5F:	A528    	LDA $28        ; Member slot
C3/1B61:	AA      	TAX            ; Index it
C3/1B62:	B569    	LDA $69,X      ; Actor in slot
C3/1B64:	220600C2	JSL $C20006    ; Get actor stats
C3/1B68:	20A81B  	JSR $1BA8      ; Load portraits
C3/1B6B:	20086A  	JSR $6A08      ; Set Win1 bounds
C3/1B6E:	644A    	STZ $4A        ; List scroll: 0
C3/1B70:	6449    	STZ $49        ; Top BG1 WR row: 1
C3/1B72:	20BC4D  	JSR $4DBC      ; Set to shift text
C3/1B75:	20804C  	JSR $4C80      ; Draw menu, etc.
C3/1B78:	20504B  	JSR $4B50      ; Load navig data
C3/1B7B:	AD4E1D  	LDA $1D4E      ; Game options
C3/1B7E:	2940    	AND #$40       ; Cursor memory?
C3/1B80:	F003    	BEQ $1B85      ; Branch if not
C3/1B82:	20FF0D  	JSR $0DFF      ; Restore cursor
C3/1B85:	20594B  	JSR $4B59      ; Relocate cursor
C3/1B88:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/1B8B:	20991B  	JSR $1B99      ; Queue desc anim
C3/1B8E:	A901    	LDA #$01       ; C3/1D7E
C3/1B90:	8526    	STA $26        ; Next: Fade-in
C3/1B92:	A90A    	LDA #$0A       ; C3/1FF4
C3/1B94:	8527    	STA $27        ; Queue: Sustain menu
C3/1B96:	4C4135  	JMP $3541      ; BRT:1 + NMI

Set to update and upload description
C3/1B99:	2096A7  	JSR $A796      ; Clear desc GFX
C3/1B9C:	2091A9  	JSR $A991      ; Queue desc upload
C3/1B9F:	A900    	LDA #$00       ; Min slot: 0
C3/1BA1:	A00EA8  	LDY #$A80E     ; C3/A80E
C3/1BA4:	207311  	JSR $1173      ; Queue desc update
C3/1BA7:	60      	RTS

Load portrait graphics and colors for party
C3/1BA8:	201569  	JSR $6915      ; Get party info
C3/1BAB:	20826E  	JSR $6E82      ; Load graphics
C3/1BAE:	20096C  	JSR $6C09      ; Load colors
C3/1BB1:	A905    	LDA #$05       ; Show cursor: Y
C3/1BB3:	0445    	TSB $45        ; Unfreeze CGRAM
C3/1BB5:	4CD214  	JMP $14D2      ; Refresh CGRAM

35: Initialize Equip menu
C3/1BB8:	20BD1B  	JSR $1BBD      ; Init variables
C3/1BBB:	801A    	BRA $1BD7      ; Draw menu, etc.

Initialize variables for Equip menu
C3/1BBD:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/1BC0:	20086A  	JSR $6A08      ; Set Win1 bounds
C3/1BC3:	A906    	LDA #$06       ; Main cursor: On
C3/1BC5:	0446    	TSB $46        ; Set menu flag
C3/1BC7:	644A    	STZ $4A        ; List scroll: 0
C3/1BC9:	6449    	STZ $49        ; Top BG1 WR row: 1
C3/1BCB:	20B694  	JSR $94B6      ; Set to shift text
C3/1BCE:	20508E  	JSR $8E50      ; Load navig data
C3/1BD1:	20598E  	JSR $8E59      ; Relocate cursor
C3/1BD4:	4CB007  	JMP $07B0      ; Queue cursor OAM

Draw Equip menu, update status based on gear, trigger fade-in
C3/1BD7:	203290  	JSR $9032      ; Draw menu; status
C3/1BDA:	A901    	LDA #$01       ; C3/1D7E
C3/1BDC:	8526    	STA $26        ; Next: Fade-in
C3/1BDE:	A936    	LDA #$36       ; C3/9621
C3/1BE0:	8527    	STA $27        ; Queue: Option list
C3/1BE2:	4C4135  	JMP $3541      ; BRT:1 + NMI

7E: Swap actor in Equip menu, retain Equip mode
C3/1BE5:	20011C  	JSR $1C01      ; Draw menu, etc.
C3/1BE8:	204F96  	JSR $964F      ; Draw blue "EQUIP"
C3/1BEB:	200A1C  	JSR $1C0A      ; Cursor & Fade-in
C3/1BEE:	A955    	LDA #$55       ; C3/9884
C3/1BF0:	4C151C  	JMP $1C15      ; Queue slot choice

7F: Swap actor in Equip menu, retain Remove mode
C3/1BF3:	20011C  	JSR $1C01      ; Draw menu, etc.
C3/1BF6:	205696  	JSR $9656      ; Draw blue "REMOVE"
C3/1BF9:	200A1C  	JSR $1C0A      ; Cursor & Fade-in
C3/1BFC:	A956    	LDA #$56       ; C3/98CF
C3/1BFE:	4C151C  	JMP $1C15      ; Queue slot choice

Redraw Equip menu after actor swap
C3/1C01:	20BD1B  	JSR $1BBD      ; Reset variables
C3/1C04:	203290  	JSR $9032      ; Draw menu; status
C3/1C07:	4C1496  	JMP $9614      ; Switch windows

Put cursor on first gear slot, trigger fade-in
C3/1C0A:	206C8E  	JSR $8E6C      ; Load navig data
C3/1C0D:	20758E  	JSR $8E75      ; Relocate cursor
C3/1C10:	A901    	LDA #$01       ; C3/1D7E
C3/1C12:	8526    	STA $26        ; Next: Fade-in
C3/1C14:	60      	RTS

Set queued menu command, prepare fade-in
C3/1C15:	8527    	STA $27        ; Set queued cmd
C3/1C17:	4C4135  	JMP $3541      ; BRT:1 + NMI

6D: Open Equip menu after optimizing gear
C3/1C1A:	20BD1B  	JSR $1BBD      ; Init variables
C3/1C1D:	20F096  	JSR $96F0      ; Optimize gear
C3/1C20:	A902    	LDA #$02       ; Menu: Equip
C3/1C22:	8525    	STA $25        ; Set submenu
C3/1C24:	80B1    	BRA $1BD7      ; Draw menu, etc.

6E: Open Equip menu after removing all gear
C3/1C26:	20BD1B  	JSR $1BBD      ; Init variables
C3/1C29:	20A896  	JSR $96A8      ; Remove gear
C3/1C2C:	A902    	LDA #$02       ; Menu: Equip
C3/1C2E:	8525    	STA $25        ; Set submenu
C3/1C30:	80A5    	BRA $1BD7      ; Draw menu, etc.

38: Initialize party gear overview
C3/1C32:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/1C35:	209794  	JSR $9497      ; Set to shift text
C3/1C38:	20ED8E  	JSR $8EED      ; Draw menu
C3/1C3B:	A901    	LDA #$01       ; C3/1D7E
C3/1C3D:	8526    	STA $26        ; Next: Fade-in
C3/1C3F:	A939    	LDA #$39       ; C3/2966
C3/1C41:	8527    	STA $27        ; Queue: Sustain menu
C3/1C43:	4C4135  	JMP $3541      ; BRT:1 + NMI

0B: Initialize Status menu
C3/1C46:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/1C49:	200B62  	JSR $620B      ; Set to shift text
C3/1C4C:	20055D  	JSR $5D05      ; Draw menu; portrait
C3/1C4F:	205D1C  	JSR $1C5D      ; Init cursor data
C3/1C52:	A901    	LDA #$01       ; C3/1D7E
C3/1C54:	8526    	STA $26        ; Next: Fade-in
C3/1C56:	A90C    	LDA #$0C       ; C3/21F5
C3/1C58:	8527    	STA $27        ; Queue: Sustain menu
C3/1C5A:	4C4135  	JMP $3541      ; BRT:1 + NMI

Initialize cursor data for Status menu
C3/1C5D:	7B      	TDC            ; Clear A
C3/1C5E:	A528    	LDA $28        ; Member slot
C3/1C60:	0A      	ASL A          ; Double it
C3/1C61:	AA      	TAX            ; Index it
C3/1C62:	B46D    	LDY $6D,X      ; Actor's address
C3/1C64:	B90000  	LDA $0000,Y    ; Actor
C3/1C67:	C90C    	CMP #$0C       ; Gogo?
C3/1C69:	D00D    	BNE $1C78      ; Abort if not
C3/1C6B:	20FF36  	JSR $36FF      ; Load navig data
C3/1C6E:	200837  	JSR $3708      ; Relocate cursor
C3/1C71:	A906    	LDA #$06       ; Main cursor: On
C3/1C73:	0446    	TSB $46        ; Set menu flag
C3/1C75:	4CB007  	JMP $07B0      ; Queue cursor OAM
C3/1C78:	A906    	LDA #$06       ; Main cursor: Off
C3/1C7A:	1446    	TRB $46        ; Set menu flag
C3/1C7C:	60      	RTS

0D: Initialize Config menu
C3/1C7D:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/1C80:	644A    	STZ $4A        ; Screen: 1st
C3/1C82:	204C3A  	JSR $3A4C      ; Set Win2 bounds
C3/1C85:	209E38  	JSR $389E      ; Draw menu, etc.
C3/1C88:	205838  	JSR $3858      ; Load navig data
C3/1C8B:	A55F    	LDA $5F        ; Return position
C3/1C8D:	854E    	STA $4E        ; Set cursor row
C3/1C8F:	206138  	JSR $3861      ; Relocate cursor
C3/1C92:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/1C95:	A901    	LDA #$01       ; C3/1D7E
C3/1C97:	8526    	STA $26        ; Next: Fade-in
C3/1C99:	A90E    	LDA #$0E       ; C3/22C5
C3/1C9B:	8527    	STA $27        ; Queue: Sustain menu
C3/1C9D:	4C4135  	JMP $3541      ; BRT:1 + NMI

13: Initialize Save menu
C3/1CA0:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/1CA3:	A00200  	LDY #$0002     ; Y: 2
C3/1CA6:	8437    	STY $37        ; Set BG1 Y-Pos
C3/1CA8:	20A336  	JSR $36A3      ; Set to shift BG3...
C3/1CAB:	A9E3    	LDA #$E3       ; CH: 0-1, 5-7
C3/1CAD:	1443    	TRB $43        ; Halt HDMA channels
C3/1CAF:	20EC15  	JSR $15EC      ; Draw menu, get chars
C3/1CB2:	20C76C  	JSR $6CC7      ; Load actor colors
C3/1CB5:	20846C  	JSR $6C84      ; Load cursor colors
C3/1CB8:	20A415  	JSR $15A4      ; Load navig data
C3/1CBB:	A491    	LDY $91        ; File 1 checksum
C3/1CBD:	D008    	BNE $1CC7      ; Branch if not 0
C3/1CBF:	A493    	LDY $93        ; File 2 checksum
C3/1CC1:	D004    	BNE $1CC7      ; Branch if not 0
C3/1CC3:	A495    	LDY $95        ; File 3 checksum
C3/1CC5:	F006    	BEQ $1CCD      ; Branch if 0
C3/1CC7:	AD2402  	LDA $0224      ; Last viewed file
C3/1CCA:	3A      	DEC A          ; Now 0-2
C3/1CCB:	854E    	STA $4E        ; Set cursor row
C3/1CCD:	20AD15  	JSR $15AD      ; Relocate cursor
C3/1CD0:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/1CD3:	A54B    	LDA $4B        ; Cursor slot
C3/1CD5:	1A      	INC A          ; Now 1-3
C3/1CD6:	8566    	STA $66        ; Set active file
C3/1CD8:	A952    	LDA #$52       ; C3/1A0A
C3/1CDA:	8526    	STA $26        ; Next: Fade-in
C3/1CDC:	A914    	LDA #$14       ; C3/2540
C3/1CDE:	8527    	STA $27        ; Queue: Sustain menu
C3/1CE0:	4C4135  	JMP $3541      ; BRT:1 + NMI

15: Initialize save confirmation
C3/1CE3:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/1CE6:	201569  	JSR $6915      ; Get party info
C3/1CE9:	202831  	JSR $3128      ; Draw menu
C3/1CEC:	20D415  	JSR $15D4      ; Load navig data
C3/1CEF:	20DD15  	JSR $15DD      ; Relocate cursor
C3/1CF2:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/1CF5:	20D118  	JSR $18D1      ; Set to shift text
C3/1CF8:	A916    	LDA #$16       ; C3/259D
C3/1CFA:	8527    	STA $27        ; Queue: Sustain menu
C3/1CFC:	A901    	LDA #$01       ; C3/1D7E
C3/1CFE:	8526    	STA $26        ; Next: Fade-in
C3/1D00:	4C4135  	JMP $3541      ; BRT:1 + NMI

20: Initialize Load menu
C3/1D03:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/1D06:	A00200  	LDY #$0002     ; Y: 2
C3/1D09:	8437    	STY $37        ; Set BG1 Y-Pos
C3/1D0B:	20A336  	JSR $36A3      ; Set to shift BG3...
C3/1D0E:	A9E3    	LDA #$E3       ; CH: 0-1, 5-7
C3/1D10:	1443    	TRB $43        ; Halt HDMA channels
C3/1D12:	A400    	LDY $00        ; X: 0
C3/1D14:	8435    	STY $35        ; Set BG1 X-Pos
C3/1D16:	8439    	STY $39        ; Set BG2 X-Pos
C3/1D18:	843D    	STY $3D        ; Set BG3 X-Pos
C3/1D1A:	A902    	LDA #$02       ; Main cursor: On
C3/1D1C:	8546    	STA $46        ; Bar/Blinker: Off
C3/1D1E:	200816  	JSR $1608      ; Draw menu, get chars
C3/1D21:	20C76C  	JSR $6CC7      ; Load actor colors
C3/1D24:	20846C  	JSR $6C84      ; Load cursor colors
C3/1D27:	20B815  	JSR $15B8      ; Load navig data
C3/1D2A:	A491    	LDY $91        ; File 1 checksum
C3/1D2C:	D008    	BNE $1D36      ; Branch if not 0
C3/1D2E:	A493    	LDY $93        ; File 2 checksum
C3/1D30:	D004    	BNE $1D36      ; Branch if not 0
C3/1D32:	A495    	LDY $95        ; File 3 checksum
C3/1D34:	F006    	BEQ $1D3C      ; Branch if 0
C3/1D36:	AFF07F30	LDA $307FF0    ; Last altered file
C3/1D3A:	854E    	STA $4E        ; Set cursor row
C3/1D3C:	20C115  	JSR $15C1      ; Relocate cursor
C3/1D3F:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/1D42:	A54B    	LDA $4B        ; Cursor slot
C3/1D44:	8566    	STA $66        ; Set active file
C3/1D46:	A921    	LDA #$21       ; C3/29C2
C3/1D48:	8527    	STA $27        ; Queue: Sustain menu
C3/1D4A:	A952    	LDA #$52       ; C3/1A0A
C3/1D4C:	8526    	STA $26        ; Next: Fade-in
C3/1D4E:	4C4135  	JMP $3541      ; BRT:1 + NMI

22: Initialize load confirmation
C3/1D51:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/1D54:	201569  	JSR $6915      ; Get party info
C3/1D57:	204C31  	JSR $314C      ; Draw menu
C3/1D5A:	20D415  	JSR $15D4      ; Load navig data
C3/1D5D:	20DD15  	JSR $15DD      ; Relocate cursor
C3/1D60:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/1D63:	20D118  	JSR $18D1      ; Set to shift text
C3/1D66:	A923    	LDA #$23       ; C3/B466
C3/1D68:	8527    	STA $27        ; Queue: Sustain menu
C3/1D6A:	A901    	LDA #$01       ; C3/1D7E
C3/1D6C:	8526    	STA $26        ; Next: Fade-in
C3/1D6E:	4C4135  	JMP $3541      ; BRT:1 + NMI

00: Queue fade-out, prepare transition
C3/1D71:	204F30  	JSR $304F      ; Queue fade-out
C3/1D74:	A00800  	LDY #$0008     ; Frames: 8
C3/1D77:	8420    	STY $20        ; Set fade timer
C3/1D79:	A902    	LDA #$02       ; C3/1D8B
C3/1D7B:	8526    	STA $26        ; Next: Wait
C3/1D7D:	60      	RTS

01: Queue fade-in, prepare transition
C3/1D7E:	205630  	JSR $3056      ; Queue fade-in
C3/1D81:	A00800  	LDY #$0008     ; Frames: 8
C3/1D84:	8420    	STY $20        ; Set fade timer
C3/1D86:	A902    	LDA #$02       ; C3/1D8B
C3/1D88:	8526    	STA $26        ; Next: Wait
C3/1D8A:	60      	RTS

02: Wait while menu fades in or out
C3/1D8B:	A420    	LDY $20        ; Timer expired?
C3/1D8D:	D004    	BNE $1D93      ; Exit if not
C3/1D8F:	A527    	LDA $27        ; Queued command
C3/1D91:	8526    	STA $26        ; Execute it next
C3/1D93:	60      	RTS

03: Exit main menu's portrait area
C3/1D94:	A900    	LDA #$00       ; Min slot: 0
C3/1D96:	A0422F  	LDY #$2F42     ; C3/2F42
C3/1D99:	207311  	JSR $1173      ; Queue D-Pad fn
C3/1D9C:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/1D9F:	A905    	LDA #$05       ; C3/1DA4
C3/1DA1:	8526    	STA $26        ; Next: Main menu
C3/1DA3:	60      	RTS

05: Sustain main menu
C3/1DA4:	204835  	JSR $3548      ; Redraw time
C3/1DA7:	A508    	LDA $08        ; No-autofire keys
C3/1DA9:	8980    	BIT #$80       ; Pushing A?
C3/1DAB:	F003    	BEQ $1DB0      ; Branch if not
C3/1DAD:	4C622E  	JMP $2E62      ; Handle selection

Fork: Handle left
C3/1DB0:	A509    	LDA $09        ; No-autofire keys
C3/1DB2:	8902    	BIT #$02       ; Pushing left?
C3/1DB4:	F006    	BEQ $1DBC      ; Branch if not
C3/1DB6:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/1DB9:	4CC62E  	JMP $2EC6      ; Init Order menu

Fork: Handle B
C3/1DBC:	A509    	LDA $09        ; No-autofire keys
C3/1DBE:	8980    	BIT #$80       ; Pushing B?
C3/1DC0:	F00F    	BEQ $1DD1      ; Exit if not
C3/1DC2:	9C0502  	STZ $0205      ; Clear field event
C3/1DC5:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/1DC8:	20D21D  	JSR $1DD2      ; Update field FX
C3/1DCB:	A9FF    	LDA #$FF       ; Null value
C3/1DCD:	8527    	STA $27        ; Queue menu exit
C3/1DCF:	6426    	STZ $26        ; Next: Fade-out
C3/1DD1:	60      	RTS

Update field effects from gear (Charms, Sprint Shoes)
C3/1DD2:	9CDF11  	STZ $11DF      ; Clear effects
C3/1DD5:	A600    	LDX $00        ; Member slot: 1
C3/1DD7:	B569    	LDA $69,X      ; Actor in slot
C3/1DD9:	3006    	BMI $1DE1      ; Skip if none
C3/1DDB:	DA      	PHX            ; Save slot
C3/1DDC:	220600C2	JSL $C20006    ; Load gear FX
C3/1DE0:	FA      	PLX            ; Member slot
C3/1DE1:	E8      	INX            ; Slot +1
C3/1DE2:	E00400  	CPX #$0004     ; Done all 4?
C3/1DE5:	D0F0    	BNE $1DD7      ; Loop if not
C3/1DE7:	60      	RTS

06: Handle single actor targeting in main menu
C3/1DE8:	204835  	JSR $3548      ; Redraw time
C3/1DEB:	A509    	LDA $09        ; No-autofire keys
C3/1DED:	8980    	BIT #$80       ; Pushing B?
C3/1DEF:	F00C    	BEQ $1DFD      ; Branch if not
C3/1DF1:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/1DF4:	A905    	LDA #$05       ; Blinker: Off
C3/1DF6:	1446    	TRB $46        ; Actor cursor: Off
C3/1DF8:	A903    	LDA #$03       ; C3/1D94
C3/1DFA:	8526    	STA $26        ; Next: Main menu
C3/1DFC:	60      	RTS

Fork: Handle MT mode switch
C3/1DFD:	A509    	LDA $09        ; No-autofire keys
C3/1DFF:	8902    	BIT #$02       ; Pushing left?
C3/1E01:	F01C    	BEQ $1E1F      ; Branch if not
C3/1E03:	A525    	LDA $25        ; Selected menu
C3/1E05:	C902    	CMP #$02       ; Equip?
C3/1E07:	F004    	BEQ $1E0D      ; Branch if so
C3/1E09:	C903    	CMP #$03       ; Relic?
C3/1E0B:	D012    	BNE $1E1F      ; Branch if not
C3/1E0D:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/1E10:	A906    	LDA #$06       ; Main cursor: Off
C3/1E12:	1446    	TRB $46        ; Set menu flag
C3/1E14:	A937    	LDA #$37       ; C3/1EB5
C3/1E16:	8526    	STA $26        ; Next: Target all
C3/1E18:	A54E    	LDA $4E        ; Cursor row
C3/1E1A:	855E    	STA $5E        ; Set return loc
C3/1E1C:	4C9F08  	JMP $089F      ; Create blinkers

Fork: Handle A
C3/1E1F:	A508    	LDA $08        ; No-autofire keys
C3/1E21:	8980    	BIT #$80       ; Pushing A?
C3/1E23:	F007    	BEQ $1E2C      ; Exit if not
C3/1E25:	A54B    	LDA $4B        ; Cursor slot
C3/1E27:	8528    	STA $28        ; Set member slot
C3/1E29:	4C2D1E  	JMP $1E2D      ; Skip a line
C3/1E2C:	60      	RTS            ; Exit
C3/1E2D:	204E1E  	JSR $1E4E      ; Can open menu?
C3/1E30:	B010    	BCS $1E42      ; Fail if not
C3/1E32:	7B      	TDC            ; Clear A
C3/1E33:	A525    	LDA $25        ; Menu to open
C3/1E35:	AA      	TAX            ; Index it
C3/1E36:	BF491EC3	LDA $C31E49,X  ; Init command
C3/1E3A:	8527    	STA $27        ; Put in queue
C3/1E3C:	6426    	STZ $26        ; Next: Fade-out
C3/1E3E:	20B20E  	JSR $0EB2      ; Sound: Click
C3/1E41:	60      	RTS

Fork: Inaccessible menu
C3/1E42:	20C00E  	JSR $0EC0      ; Play buzzer
C3/1E45:	205D30  	JSR $305D      ; Pixelate screen
C3/1E48:	60      	RTS

Initialization commands for actor menus
C3/1E49:	FF      	; Blank
C3/1E4A:	09      	; Skills
C3/1E4B:	35      	; Equip
C3/1E4C:	58      	; Relic
C3/1E4D:	0B      	; Status

Determine if actor-related menu is accessible
C3/1E4E:	7B      	TDC            ; Clear A
C3/1E4F:	A525    	LDA $25        ; Menu to open
C3/1E51:	C901    	CMP #$01       ; Skills?
C3/1E53:	F034    	BEQ $1E89      ; Branch if so
C3/1E55:	C902    	CMP #$02       ; Equip?
C3/1E57:	F006    	BEQ $1E5F      ; Branch if so
C3/1E59:	C903    	CMP #$03       ; Relic?
C3/1E5B:	F017    	BEQ $1E74      ; Branch if so
C3/1E5D:	8054    	BRA $1EB3      ; Allow access

Fork: Equip
C3/1E5F:	7B      	TDC            ; ...
C3/1E60:	A528    	LDA $28        ; Member slot
C3/1E62:	0A      	ASL A          ; Double it
C3/1E63:	AA      	TAX            ; Index it
C3/1E64:	C220    	REP #$20       ; 16-bit A
C3/1E66:	B56D    	LDA $6D,X      ; Actor's address
C3/1E68:	E220    	SEP #$20       ; 8-bit A
C3/1E6A:	AA      	TAX            ; Index it
C3/1E6B:	BD0000  	LDA $0000,X    ; Actor
C3/1E6E:	C90D    	CMP #$0D       ; Umaro or guest?
C3/1E70:	B03F    	BCS $1EB1      ; Fail if so
C3/1E72:	8028    	BRA $1E9C      ; Check if dead

Fork: Relic
C3/1E74:	7B      	TDC            ; ...
C3/1E75:	A528    	LDA $28        ; Member slot
C3/1E77:	0A      	ASL A          ; Double it
C3/1E78:	AA      	TAX            ; Index it
C3/1E79:	C220    	REP #$20       ; 16-bit A
C3/1E7B:	B56D    	LDA $6D,X      ; Actor's address
C3/1E7D:	E220    	SEP #$20       ; 8-bit A
C3/1E7F:	AA      	TAX            ; Index it
C3/1E80:	BD0000  	LDA $0000,X    ; Actor
C3/1E83:	C90E    	CMP #$0E       ; Guest?
C3/1E85:	B02A    	BCS $1EB1      ; Fail if so
C3/1E87:	8013    	BRA $1E9C      ; Check if dead

Fork: Skills
C3/1E89:	203D4D  	JSR $4D3D      ; Set skill colors
C3/1E8C:	A924    	LDA #$24       ; Palette: Gray
C3/1E8E:	A600    	LDX $00        ; 1st: Espers
C3/1E90:	D579    	CMP $79,X      ; Grayed skill?
C3/1E92:	D008    	BNE $1E9C      ; Branch if not
C3/1E94:	E8      	INX            ; Skill slot +1
C3/1E95:	E00700  	CPX #$0007     ; Beyond Dance?
C3/1E98:	D0F6    	BNE $1E90      ; Loop if not
C3/1E9A:	8015    	BRA $1EB1      ; Play buzzer

Fork: Check if dead
C3/1E9C:	7B      	TDC            ; Clear A
C3/1E9D:	A528    	LDA $28        ; Member slot
C3/1E9F:	0A      	ASL A          ; Double it
C3/1EA0:	AA      	TAX            ; Index it
C3/1EA1:	C220    	REP #$20       ; 16-bit A
C3/1EA3:	B56D    	LDA $6D,X      ; Actor address
C3/1EA5:	E220    	SEP #$20       ; 8-bit A
C3/1EA7:	AA      	TAX            ; Index it
C3/1EA8:	BD1400  	LDA $0014,X    ; Zombie? KO?
C3/1EAB:	29C2    	AND #$C2       ; Or Petrify?
C3/1EAD:	D002    	BNE $1EB1      ; Fail if any
C3/1EAF:	8002    	BRA $1EB3      ; Allow access

Fork: Set to play buzzer
C3/1EB1:	38      	SEC            ; Mark failure
C3/1EB2:	60      	RTS

Fork: Set to open menu
C3/1EB3:	18      	CLC            ; Mark success
C3/1EB4:	60      	RTS

37: Handle multitargeting in main menu
C3/1EB5:	204835  	JSR $3548      ; Redraw time
C3/1EB8:	A509    	LDA $09        ; No-autofire keys
C3/1EBA:	8980    	BIT #$80       ; Pushing B?
C3/1EBC:	D006    	BNE $1EC4      ; Branch if so
C3/1EBE:	A509    	LDA $09        ; ...
C3/1EC0:	8901    	BIT #$01       ; Pushing right?
C3/1EC2:	F021    	BEQ $1EE5      ; Branch if not
C3/1EC4:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/1EC7:	20982F  	JSR $2F98      ; Preload nav data
C3/1ECA:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/1ECD:	A900    	LDA #$00       ; Min slot: 0
C3/1ECF:	A0C02F  	LDY #$2FC0     ; C3/2FC0
C3/1ED2:	207311  	JSR $1173      ; Queue D-Pad fn
C3/1ED5:	20B011  	JSR $11B0      ; Run anim queue
C3/1ED8:	A55E    	LDA $5E        ; Old cursor row
C3/1EDA:	854E    	STA $4E        ; Set as current
C3/1EDC:	A906    	LDA #$06       ; C3/1DE8
C3/1EDE:	8526    	STA $26        ; Next: ST actor
C3/1EE0:	A908    	LDA #$08       ; Blinkers: Off
C3/1EE2:	1446    	TRB $46        ; Set menu flag
C3/1EE4:	60      	RTS

Fork: Handle A
C3/1EE5:	A508    	LDA $08        ; No-autofire keys
C3/1EE7:	8980    	BIT #$80       ; Pushing A?
C3/1EE9:	F00A    	BEQ $1EF5      ; Exit if not
C3/1EEB:	20B20E  	JSR $0EB2      ; Sound: Click
C3/1EEE:	6426    	STZ $26        ; Next: Fade-out
C3/1EF0:	A938    	LDA #$38       ; C3/1C32
C3/1EF2:	8527    	STA $27        ; Queue: Party gear
C3/1EF4:	60      	RTS            ; ...
C3/1EF5:	60      	RTS            ; ...
C3/1EF6:	60      	RTS

08: Handle Item menu choice 1
C3/1EF7:	A910    	LDA #$10       ; Description: On
C3/1EF9:	1445    	TRB $45        ; Set menu flag
C3/1EFB:	7B      	TDC            ; Clear A
C3/1EFC:	852A    	STA $2A        ; List type: Stock
C3/1EFE:	20FD0E  	JSR $0EFD      ; Queue list upload
C3/1F01:	20641F  	JSR $1F64      ; Handle L and R
C3/1F04:	B0F0    	BCS $1EF6      ; Exit if pushed
C3/1F06:	20227D  	JSR $7D22      ; Handle D-Pad
C3/1F09:	20F182  	JSR $82F1      ; Load description

Fork: Handle B
C3/1F0C:	A509    	LDA $09        ; No-autofire keys
C3/1F0E:	8980    	BIT #$80       ; Pushing B?
C3/1F10:	F029    	BEQ $1F3B      ; Branch if not
C3/1F12:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/1F15:	A44F    	LDY $4F        ; Cursor position
C3/1F17:	8C2F02  	STY $022F      ; To cursor memory
C3/1F1A:	A54A    	LDA $4A        ; Scroll position
C3/1F1C:	8D3102  	STA $0231      ; To cursor memory
C3/1F1F:	20807D  	JSR $7D80      ; Load navig data
C3/1F22:	AD4E1D  	LDA $1D4E      ; Game options
C3/1F25:	2940    	AND #$40       ; Cursor memory?
C3/1F27:	F005    	BEQ $1F2E      ; Branch if not
C3/1F29:	AC3402  	LDY $0234      ; Former position
C3/1F2C:	844D    	STY $4D        ; Set as current
C3/1F2E:	20867D  	JSR $7D86      ; Relocate cursor
C3/1F31:	A917    	LDA #$17       ; C3/25F4
C3/1F33:	8526    	STA $26        ; Next: Option list
C3/1F35:	208583  	JSR $8385      ; Blank item count
C3/1F38:	4C390F  	JMP $0F39      ; Queue its upload

Fork: Handle A
C3/1F3B:	A508    	LDA $08        ; No-autofire keys
C3/1F3D:	8980    	BIT #$80       ; Pushing A?
C3/1F3F:	F00E    	BEQ $1F4F      ; Exit if not
C3/1F41:	20B20E  	JSR $0EB2      ; Sound: Click
C3/1F44:	A54B    	LDA $4B        ; List slot
C3/1F46:	8528    	STA $28        ; Set choice 1's
C3/1F48:	A919    	LDA #$19       ; C3/2779
C3/1F4A:	8526    	STA $26        ; Next: Choice 2
C3/1F4C:	4C212F  	JMP $2F21      ; Create blinker
C3/1F4F:	60      	RTS

Hi-fork: Pressed L on first page
C3/1F50:	6450    	STZ $50        ; List row: 1
C3/1F52:	644E    	STZ $4E        ; Cursor row: 1
C3/1F54:	38      	SEC            ; Mark L/R usage
C3/1F55:	60      	RTS

Hi-fork: Pressed R on last page
C3/1F56:	A554    	LDA $54        ; Bottom menu row
C3/1F58:	3A      	DEC A          ; Adjust value
C3/1F59:	854E    	STA $4E        ; Set cursor row
C3/1F5B:	18      	CLC            ; Prepare ADC
C3/1F5C:	654A    	ADC $4A        ; Add scroll pos
C3/1F5E:	8550    	STA $50        ; Set list row
C3/1F60:	38      	SEC            ; Mark L/R usage
C3/1F61:	60      	RTS

Hi-fork: Do nothing
C3/1F62:	18      	CLC            ; Mark no L/R use
C3/1F63:	60      	RTS

Handle L and R for scrollable list
C3/1F64:	A520    	LDA $20        ; Scrolling now?
C3/1F66:	D0FA    	BNE $1F62      ; Exit if so
C3/1F68:	A50A    	LDA $0A        ; Semi-auto keys
C3/1F6A:	8910    	BIT #$10       ; Pushing R?
C3/1F6C:	F025    	BEQ $1F93      ; Branch if not
C3/1F6E:	A54A    	LDA $4A        ; Scroll position
C3/1F70:	C55C    	CMP $5C        ; At very bottom?
C3/1F72:	F0E2    	BEQ $1F56      ; Branch if so
C3/1F74:	A55C    	LDA $5C        ; Scroll limit
C3/1F76:	38      	SEC            ; Prepare SBC
C3/1F77:	E54A    	SBC $4A        ; Get rows left
C3/1F79:	C55A    	CMP $5A        ; Full page below?
C3/1F7B:	B002    	BCS $1F7F      ; Branch if so
C3/1F7D:	8002    	BRA $1F81      ; Skip a line
C3/1F7F:	A55A    	LDA $5A        ; Rows per page
C3/1F81:	85E0    	STA $E0        ; Set shift qty
C3/1F83:	A54A    	LDA $4A        ; Scroll position
C3/1F85:	18      	CLC            ; Prepare ADC
C3/1F86:	65E0    	ADC $E0        ; Add shift qty
C3/1F88:	854A    	STA $4A        ; Save changes
C3/1F8A:	A550    	LDA $50        ; List row
C3/1F8C:	18      	CLC            ; Prepare ADC
C3/1F8D:	65E0    	ADC $E0        ; Add shift qty
C3/1F8F:	8550    	STA $50        ; Save changes
C3/1F91:	8024    	BRA $1FB7      ; Redraw & Sound

Fork: Handle L
C3/1F93:	A50A    	LDA $0A        ; Semi-auto keys
C3/1F95:	8920    	BIT #$20       ; Pushing L?
C3/1F97:	F0C9    	BEQ $1F62      ; Exit if not
C3/1F99:	A54A    	LDA $4A        ; On first page?
C3/1F9B:	F0B3    	BEQ $1F50      ; Branch if so
C3/1F9D:	C55A    	CMP $5A        ; Full page above?
C3/1F9F:	B004    	BCS $1FA5      ; Branch if so
C3/1FA1:	A54A    	LDA $4A        ; Scroll position
C3/1FA3:	8002    	BRA $1FA7      ; Skip a line
C3/1FA5:	A55A    	LDA $5A        ; Rows per page
C3/1FA7:	85E0    	STA $E0        ; Set shift qty
C3/1FA9:	A54A    	LDA $4A        ; Scroll position
C3/1FAB:	38      	SEC            ; Prepare SBC
C3/1FAC:	E5E0    	SBC $E0        ; Sub shift qty
C3/1FAE:	854A    	STA $4A        ; Save changes
C3/1FB0:	A550    	LDA $50        ; List row
C3/1FB2:	38      	SEC            ; Prepare SBC
C3/1FB3:	E5E0    	SBC $E0        ; Sub shift qty
C3/1FB5:	8550    	STA $50        ; Save changes

Fork: Redraw list, play sound effect
C3/1FB7:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/1FBA:	7B      	TDC            ; Clear A
C3/1FBB:	A52A    	LDA $2A        ; List type
C3/1FBD:	0A      	ASL A          ; Double it
C3/1FBE:	AA      	TAX            ; Index it
C3/1FBF:	FCC41F  	JSR ($1FC4,X)  ; Redraw list
C3/1FC2:	38      	SEC            ; Mark L/R usage
C3/1FC3:	60      	RTS

Jump table for the above
C3/1FC4:	D01F    	; Inventory
C3/1FC6:	D61F    	; Magic
C3/1FC8:	DC1F    	; Lore
C3/1FCA:	E21F    	; Rage
C3/1FCC:	E81F    	; Esper
C3/1FCE:	EE1F    	; Gear

Redraw inventory for page swap (Item, Colosseum, Sell)
C3/1FD0:	20957E  	JSR $7E95      ; Load V-shift data
C3/1FD3:	4C887F  	JMP $7F88      ; Draw inventory

Redraw Magic list for page swap
C3/1FD6:	202D4E  	JSR $4E2D      ; Load V-shift data
C3/1FD9:	4C874F  	JMP $4F87      ; Draw spell list

Redraw Lore list for page swap
C3/1FDC:	202D4E  	JSR $4E2D      ; Load V-shift data
C3/1FDF:	4C3C52  	JMP $523C      ; Draw Lore list

Redraw Rage list for page swap
C3/1FE2:	202D4E  	JSR $4E2D      ; Load V-shift data
C3/1FE5:	4CA753  	JMP $53A7      ; Draw Rage list

Redraw Esper list for page swap
C3/1FE8:	202D4E  	JSR $4E2D      ; Load V-shift data
C3/1FEB:	4C6C54  	JMP $546C      ; Draw esper list

Redraw gear list for page swap (Equip, Relic)
C3/1FEE:	202095  	JSR $9520      ; Load V-shift data
C3/1FF1:	4CAC9C  	JMP $9CAC      ; Draw item list

0A: Sustain Skills menu
C3/1FF4:	A910    	LDA #$10       ; Reset/Stop desc
C3/1FF6:	0445    	TSB $45        ; Set menu flag
C3/1FF8:	A9C0    	LDA #$C0       ; Scrollbar: Off
C3/1FFA:	1446    	TRB $46        ; Set anim index
C3/1FFC:	20564B  	JSR $4B56      ; Handle D-Pad
C3/1FFF:	A509    	LDA $09        ; No-autofire keys
C3/2001:	8980    	BIT #$80       ; Pushing B?
C3/2003:	F00A    	BEQ $200F      ; Branch if not
C3/2005:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/2008:	A904    	LDA #$04       ; C3/1A8A
C3/200A:	8527    	STA $27        ; Queue main menu
C3/200C:	6426    	STZ $26        ; Next: Fade-out
C3/200E:	60      	RTS

Fork: Handle A
C3/200F:	A508    	LDA $08        ; No-autofire keys
C3/2011:	8980    	BIT #$80       ; Pushing A?
C3/2013:	F007    	BEQ $201C      ; Branch if not
C3/2015:	A54E    	LDA $4E        ; Cursor row
C3/2017:	855E    	STA $5E        ; Set return loc
C3/2019:	4C8A20  	JMP $208A      ; Invoke submenu

Fork: Handle L and R, prepare for menu reset
C3/201C:	A909    	LDA #$09       ; C3/1B5B
C3/201E:	85E0    	STA $E0        ; Set init command
C3/2020:	8000    	BRA $2022      ; ...

Handle member switching with L or R (excludes Status menu)
C3/2022:	A5B5    	LDA $B5        ; Mosaic settings
C3/2024:	29F0    	AND #$F0       ; Mosaic enabled?
C3/2026:	D061    	BNE $2089      ; Exit if so
C3/2028:	A508    	LDA $08        ; No-autofire keys
C3/202A:	8910    	BIT #$10       ; Pushing R?
C3/202C:	F02B    	BEQ $2059      ; Branch if not
C3/202E:	A525    	LDA $25        ; Submenu
C3/2030:	C903    	CMP #$03       ; Relic?
C3/2032:	D00B    	BNE $203F      ; Branch if not
C3/2034:	20EB9E  	JSR $9EEB      ; Handle Reequip
C3/2037:	A599    	LDA $99        ; Triggered it?
C3/2039:	F004    	BEQ $203F      ; Branch if not
C3/203B:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/203E:	60      	RTS

Fork: Switch to next member
C3/203F:	7B      	TDC            ; Clear A
C3/2040:	A528    	LDA $28        ; Current member
C3/2042:	1A      	INC A          ; Point to next
C3/2043:	2903    	AND #$03       ; Wrap if last
C3/2045:	8528    	STA $28        ; Save changes
C3/2047:	AA      	TAX            ; Index it
C3/2048:	B569    	LDA $69,X      ; Nobody there?
C3/204A:	30F3    	BMI $203F      ; Skip if so
C3/204C:	204E1E  	JSR $1E4E      ; Can access menu?
C3/204F:	B0EE    	BCS $203F      ; Skip if not
C3/2051:	A5E0    	LDA $E0        ; Init command
C3/2053:	8526    	STA $26        ; Set menu mode
C3/2055:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/2058:	60      	RTS

Fork: Handle L
C3/2059:	A508    	LDA $08        ; No-autofire keys
C3/205B:	8920    	BIT #$20       ; Pushing L?
C3/205D:	F02A    	BEQ $2089      ; Exit if not
C3/205F:	A525    	LDA $25        ; Submenu
C3/2061:	C903    	CMP #$03       ; Relic?
C3/2063:	D00B    	BNE $2070      ; Branch if not
C3/2065:	20EB9E  	JSR $9EEB      ; Handle Reequip
C3/2068:	A599    	LDA $99        ; Triggered it?
C3/206A:	F004    	BEQ $2070      ; Branch if not
C3/206C:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/206F:	60      	RTS

Fork: Switch to preceding member
C3/2070:	7B      	TDC            ; Clear A
C3/2071:	A528    	LDA $28        ; Current member
C3/2073:	3A      	DEC A          ; Point to previous
C3/2074:	2903    	AND #$03       ; Wrap if was first
C3/2076:	8528    	STA $28        ; Save changes
C3/2078:	AA      	TAX            ; Index it
C3/2079:	B569    	LDA $69,X      ; Nobody there?
C3/207B:	30F3    	BMI $2070      ; Skip if so
C3/207D:	204E1E  	JSR $1E4E      ; Can access menu?
C3/2080:	B0EE    	BCS $2070      ; Skip if not
C3/2082:	A5E0    	LDA $E0        ; Init command
C3/2084:	8526    	STA $26        ; Set menu mode
C3/2086:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/2089:	60      	RTS

Initialize selected Skills submenu if accessible
C3/208A:	7B      	TDC            ; Clear A
C3/208B:	A54B    	LDA $4B        ; Chosen menu
C3/208D:	AA      	TAX            ; Index it
C3/208E:	B579    	LDA $79,X      ; Name's color
C3/2090:	C920    	CMP #$20       ; User's color?
C3/2092:	D00A    	BNE $209E      ; Fail if not
C3/2094:	20B20E  	JSR $0EB2      ; Sound: Click
C3/2097:	A54B    	LDA $4B        ; Chosen menu
C3/2099:	0A      	ASL A          ; Double it
C3/209A:	AA      	TAX            ; Index it
C3/209B:	7CA520  	JMP ($20A5,X)  ; Invoke menu

Fork: Play buzzer
C3/209E:	20C00E  	JSR $0EC0      ; Play buzzer
C3/20A1:	205D30  	JSR $305D      ; Pixelate screen
C3/20A4:	60      	RTS

Jump table for the above
C3/20A5:	B320    	; Espers
C3/20A7:	1C21    	; Magic
C3/20A9:	EE20    	; SwdTech
C3/20AB:	0521    	; Blitz
C3/20AD:	6E21    	; Lore
C3/20AF:	A621    	; Rage
C3/20B1:	DE21    	; Dance

Initialize Espers menu
C3/20B3:	644A    	STZ $4A        ; List scroll: 0
C3/20B5:	201F09  	JSR $091F      ; Create scrollbar
C3/20B8:	C220    	REP #$20       ; 16-bit A
C3/20BA:	A90010  	LDA #$1000     ; V-Speed: 16 px
C3/20BD:	9F4A357E	STA $7E354A,X  ; Set scrollbar's
C3/20C1:	A96800  	LDA #$0068     ; Y: 104
C3/20C4:	9FCA347E	STA $7E34CA,X  ; Set scrollbar's
C3/20C8:	E220    	SEP #$20       ; 8-bit A
C3/20CA:	20184C  	JSR $4C18      ; Load navig data
C3/20CD:	20214C  	JSR $4C21      ; Relocate cursor
C3/20D0:	A906    	LDA #$06       ; Top row: Golem's
C3/20D2:	855C    	STA $5C        ; Set scroll limit
C3/20D4:	A908    	LDA #$08       ; Onscreen rows: 8
C3/20D6:	855A    	STA $5A        ; Set rows per page
C3/20D8:	A902    	LDA #$02       ; Onscreen cols: 2
C3/20DA:	855B    	STA $5B        ; Set cols per page
C3/20DC:	A00001  	LDY #$0100     ; X: 256
C3/20DF:	8439    	STY $39        ; Set BG2 X-Pos
C3/20E1:	843D    	STY $3D        ; Set BG3 X-Pos
C3/20E3:	205254  	JSR $5452      ; Draw espers, etc.
C3/20E6:	A91E    	LDA #$1E       ; C3/28D3
C3/20E8:	8526    	STA $26        ; Next: Sustain menu
C3/20EA:	20EB2E  	JSR $2EEB      ; Create blinker
C3/20ED:	60      	RTS

Initialize SwdTech menu
C3/20EE:	644A    	STZ $4A        ; List scroll: 0
C3/20F0:	20CE4B  	JSR $4BCE      ; Load navig data
C3/20F3:	20D74B  	JSR $4BD7      ; Relocate cursor
C3/20F6:	A00001  	LDY #$0100     ; X: 256
C3/20F9:	8439    	STY $39        ; Set BG2 X-Pos
C3/20FB:	843D    	STY $3D        ; Set BG3 X-Pos
C3/20FD:	20D752  	JSR $52D7      ; Draw techs, etc.
C3/2100:	A93E    	LDA #$3E       ; C3/298E
C3/2102:	8526    	STA $26        ; Next: Sustain menu
C3/2104:	60      	RTS

Initialize Blitz menu
C3/2105:	644A    	STZ $4A        ; List scroll: 0
C3/2107:	20CE4B  	JSR $4BCE      ; Load navig data
C3/210A:	20D74B  	JSR $4BD7      ; Relocate cursor
C3/210D:	A00001  	LDY #$0100     ; X: 256
C3/2110:	8439    	STY $39        ; Set BG2 X-Pos
C3/2112:	843D    	STY $3D        ; Set BG3 X-Pos
C3/2114:	20D455  	JSR $55D4      ; Draw inputs, etc.
C3/2117:	A933    	LDA #$33       ; C3/2977
C3/2119:	8526    	STA $26        ; Next: Sustain menu
C3/211B:	60      	RTS

Initialize Magic menu
C3/211C:	203021  	JSR $2130      ; Create scrollbar
C3/211F:	204821  	JSR $2148      ; Load nav data, etc.
C3/2122:	205821  	JSR $2158      ; Draw spells, etc.
C3/2125:	20C651  	JSR $51C6      ; Draw MP cost
C3/2128:	204D0F  	JSR $0F4D      ; Queue BG3 upload
C3/212B:	A91A    	LDA #$1A       ; C3/27E2
C3/212D:	8526    	STA $26        ; Next: Sustain menu
C3/212F:	60      	RTS

Create scrollbar for Magic menu
C3/2130:	644A    	STZ $4A        ; List scroll: 0
C3/2132:	201F09  	JSR $091F      ; Queue OAM fn
C3/2135:	C220    	REP #$20       ; 16-bit A
C3/2137:	A90D05  	LDA #$050D     ; V-Speed: 5.05 px
C3/213A:	9F4A357E	STA $7E354A,X  ; Set sprite's
C3/213E:	A96800  	LDA #$0068     ; Y: 104
C3/2141:	9FCA347E	STA $7E34CA,X  ; Set sprite's
C3/2145:	E220    	SEP #$20       ; 8-bit A
C3/2147:	60      	RTS

Load navigation data for Magic menu; position cursor
C3/2148:	20824B  	JSR $4B82      ; Load navig data
C3/214B:	AD4E1D  	LDA $1D4E      ; Game options
C3/214E:	2940    	AND #$40       ; Cursor memory?
C3/2150:	F003    	BEQ $2155      ; Branch if not
C3/2152:	200A0E  	JSR $0E0A      ; Restore cursor
C3/2155:	4C8B4B  	JMP $4B8B      ; Relocate cursor

Switch to Magic menu, create portrait, draw spells and "MP"
C3/2158:	A913    	LDA #$13       ; Top row: Sleep's
C3/215A:	855C    	STA $5C        ; Set scroll limit
C3/215C:	A908    	LDA #$08       ; Onscreen rows: 8
C3/215E:	855A    	STA $5A        ; Set rows per page
C3/2160:	A902    	LDA #$02       ; Onscreen cols: 2
C3/2162:	855B    	STA $5B        ; Set cols per page
C3/2164:	A00001  	LDY #$0100     ; X: 256
C3/2167:	8439    	STY $39        ; Set BG2 X-Pos
C3/2169:	843D    	STY $3D        ; Set BG3 X-Pos
C3/216B:	4C7F4D  	JMP $4D7F      ; Draw spells, etc.

Initialize Lore menu
C3/216E:	644A    	STZ $4A        ; List scroll: 0
C3/2170:	201F09  	JSR $091F      ; Create scrollbar
C3/2173:	C220    	REP #$20       ; 16-bit A
C3/2175:	A90006  	LDA #$0600     ; V-Speed: 6 px
C3/2178:	9F4A357E	STA $7E354A,X  ; Set scrollbar's
C3/217C:	A96800  	LDA #$0068     ; Y: 104
C3/217F:	9FCA347E	STA $7E34CA,X  ; Set scrollbar's
C3/2183:	E220    	SEP #$20       ; 8-bit A
C3/2185:	20F44B  	JSR $4BF4      ; Load navig data
C3/2188:	20FD4B  	JSR $4BFD      ; Relocate cursor
C3/218B:	A910    	LDA #$10       ; Top row: Dischord
C3/218D:	855C    	STA $5C        ; Set scroll limit
C3/218F:	A908    	LDA #$08       ; Onscreen rows: 8
C3/2191:	855A    	STA $5A        ; Set rows per page
C3/2193:	A901    	LDA #$01       ; Onscreen cols: 1
C3/2195:	855B    	STA $5B        ; Set cols per page
C3/2197:	A00001  	LDY #$0100     ; X: 256
C3/219A:	8439    	STY $39        ; Set BG2 X-Pos
C3/219C:	843D    	STY $3D        ; Set BG3 X-Pos
C3/219E:	20F951  	JSR $51F9      ; Draw lores, etc.
C3/21A1:	A91B    	LDA #$1B       ; C3/288A
C3/21A3:	8526    	STA $26        ; Next: Sustain menu
C3/21A5:	60      	RTS

Initialize Rage menu
C3/21A6:	644A    	STZ $4A        ; List scroll: 0
C3/21A8:	201F09  	JSR $091F      ; Create scrollbar
C3/21AB:	C220    	REP #$20       ; 16-bit A
C3/21AD:	A9CC00  	LDA #$00CC     ; V-Speed: 0.8 px
C3/21B0:	9F4A357E	STA $7E354A,X  ; Set scrollbar's
C3/21B4:	A96800  	LDA #$0068     ; Y: 104
C3/21B7:	9FCA347E	STA $7E34CA,X  ; Set scrollbar's
C3/21BB:	E220    	SEP #$20       ; 8-bit A
C3/21BD:	204C4C  	JSR $4C4C      ; Load navig data
C3/21C0:	20554C  	JSR $4C55      ; Relocate cursor
C3/21C3:	A978    	LDA #$78       ; Top row: Tap Dancer
C3/21C5:	855C    	STA $5C        ; Set scroll limit
C3/21C7:	A908    	LDA #$08       ; Onscreen rows: 8
C3/21C9:	855A    	STA $5A        ; Set rows per page
C3/21CB:	A902    	LDA #$02       ; Onscreen cols: 2
C3/21CD:	855B    	STA $5B        ; Set cols per page
C3/21CF:	A00001  	LDY #$0100     ; X: 256
C3/21D2:	8439    	STY $39        ; Set BG2 X-Pos
C3/21D4:	843D    	STY $3D        ; Set BG3 X-Pos
C3/21D6:	209153  	JSR $5391      ; Draw rages, etc.
C3/21D9:	A91D    	LDA #$1D       ; C3/28BA
C3/21DB:	8526    	STA $26        ; Next: Sustain menu
C3/21DD:	60      	RTS

Initialize Dance menu
C3/21DE:	644A    	STZ $4A        ; List scroll: 0
C3/21E0:	20CE4B  	JSR $4BCE      ; Load navig data
C3/21E3:	20D74B  	JSR $4BD7      ; Relocate cursor
C3/21E6:	A00001  	LDY #$0100     ; X: 256
C3/21E9:	8439    	STY $39        ; Set BG2 X-Pos
C3/21EB:	843D    	STY $3D        ; Set BG3 X-Pos
C3/21ED:	207457  	JSR $5774      ; Draw dances, etc.
C3/21F0:	A91C    	LDA #$1C       ; C3/22AA
C3/21F2:	8526    	STA $26        ; Next: Sustain menu
C3/21F4:	60      	RTS

0C: Sustain Status menu
C3/21F5:	20390F  	JSR $0F39      ; Set to redraw cmds
C3/21F8:	A508    	LDA $08        ; No-autofire keys
C3/21FA:	8910    	BIT #$10       ; Pushing R?
C3/21FC:	F020    	BEQ $221E      ; Branch if not
C3/21FE:	A528    	LDA $28        ; Member slot
C3/2200:	8579    	STA $79        ; Set former slot
C3/2202:	7B      	TDC            ; Clear A
C3/2203:	A528    	LDA $28        ; Member slot
C3/2205:	1A      	INC A          ; Point to next
C3/2206:	2903    	AND #$03       ; Wrap if was last
C3/2208:	8528    	STA $28        ; Save changes
C3/220A:	AA      	TAX            ; Index slot
C3/220B:	B569    	LDA $69,X      ; Nobody there?
C3/220D:	30F3    	BMI $2202      ; Skip slot if so
C3/220F:	A528    	LDA $28        ; New member slot
C3/2211:	C579    	CMP $79        ; Matches former?
C3/2213:	F003    	BEQ $2218      ; Skip sound if so
C3/2215:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/2218:	205D1C  	JSR $1C5D      ; Init cursor data
C3/221B:	4C835D  	JMP $5D83      ; Swap actor info

Fork: Handle L
C3/221E:	A508    	LDA $08        ; No-autofire keys
C3/2220:	8920    	BIT #$20       ; Pushing L?
C3/2222:	F020    	BEQ $2244      ; Branch if not
C3/2224:	A528    	LDA $28        ; Member slot
C3/2226:	8579    	STA $79        ; Set former slot
C3/2228:	7B      	TDC            ; Clear A
C3/2229:	A528    	LDA $28        ; Member slot
C3/222B:	3A      	DEC A          ; Point to previous
C3/222C:	2903    	AND #$03       ; Wrap if was first
C3/222E:	8528    	STA $28        ; Save changes
C3/2230:	AA      	TAX            ; Index it
C3/2231:	B569    	LDA $69,X      ; Empty slot?
C3/2233:	30F3    	BMI $2228      ; Loop if so
C3/2235:	A528    	LDA $28        ; New member slot
C3/2237:	C579    	CMP $79        ; Matches former?
C3/2239:	F003    	BEQ $223E      ; Skip sound if so
C3/223B:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/223E:	205D1C  	JSR $1C5D      ; Init cursor data
C3/2241:	4C835D  	JMP $5D83      ; Swap actor info

Fork: Handle B
C3/2244:	A509    	LDA $09        ; No-autofire keys
C3/2246:	8980    	BIT #$80       ; Pushing B?
C3/2248:	F00A    	BEQ $2254      ; Branch if not
C3/224A:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/224D:	A904    	LDA #$04       ; C3/1A8A
C3/224F:	8527    	STA $27        ; Queue main menu
C3/2251:	6426    	STZ $26        ; Next: Fade-out
C3/2253:	60      	RTS

Fork: Handle Gogo
C3/2254:	7B      	TDC            ; Clear A
C3/2255:	A528    	LDA $28        ; Member slot
C3/2257:	0A      	ASL A          ; Double it
C3/2258:	AA      	TAX            ; Index it
C3/2259:	B46D    	LDY $6D,X      ; Actor's address
C3/225B:	B90000  	LDA $0000,Y    ; Actor
C3/225E:	C90C    	CMP #$0C       ; Gogo?
C3/2260:	D051    	BNE $22B3      ; Exit if not
C3/2262:	200537  	JSR $3705      ; Handle D-Pad
C3/2265:	A508    	LDA $08        ; No-autofire keys
C3/2267:	8980    	BIT #$80       ; Pushing A?
C3/2269:	F048    	BEQ $22B3      ; Exit if not
C3/226B:	20B20E  	JSR $0EB2      ; Sound: Click
C3/226E:	A54B    	LDA $4B        ; Cursor slot
C3/2270:	85E7    	STA $E7        ; Memorize it
C3/2272:	64E8    	STZ $E8        ; Clear HB
C3/2274:	7B      	TDC            ; Clear A
C3/2275:	A528    	LDA $28        ; Member slot
C3/2277:	0A      	ASL A          ; Double it
C3/2278:	AA      	TAX            ; Index it
C3/2279:	B46D    	LDY $6D,X      ; Actor's address
C3/227B:	C220    	REP #$20       ; 16-bit A
C3/227D:	98      	TYA            ; Move it to A
C3/227E:	18      	CLC            ; Prepare ADC
C3/227F:	65E7    	ADC $E7        ; Add cursor slot
C3/2281:	A8      	TAY            ; Index sum
C3/2282:	E220    	SEP #$20       ; 8-bit A
C3/2284:	B91600  	LDA $0016,Y    ; Chosen command
C3/2287:	C912    	CMP #$12       ; Mimic?
C3/2289:	F028    	BEQ $22B3      ; Exit if so
C3/228B:	20062F  	JSR $2F06      ; Create blinker
C3/228E:	A54E    	LDA $4E        ; Cursor row
C3/2290:	855E    	STA $5E        ; Set return loc
C3/2292:	A54B    	LDA $4B        ; Cursor slot
C3/2294:	8564    	STA $64        ; Set altered slot
C3/2296:	A906    	LDA #$06       ; Frames: 6
C3/2298:	8520    	STA $20        ; Set scroll timer
C3/229A:	A00C00  	LDY #$000C     ; Speed: 12
C3/229D:	849C    	STY $9C        ; Set scroll speed
C3/229F:	A96A    	LDA #$6A       ; C3/63A7
C3/22A1:	8527    	STA $27        ; Queue: Shifted menu
C3/22A3:	A965    	LDA #$65       ; C3/36E7
C3/22A5:	8526    	STA $26        ; Next: Shift screen
C3/22A7:	200364  	JSR $6403      ; Load navig data
C3/22AA:	AF899D7E	LDA $7E9D89    ; Command list size
C3/22AE:	8554    	STA $54        ; Set number of rows
C3/22B0:	4C0C64  	JMP $640C      ; Relocate cursor
C3/22B3:	60      	RTS

Menu command 6B (unused)
C3/22B4:	A509    	LDA $09        ; No-autofire keys
C3/22B6:	8980    	BIT #$80       ; Pushing B?
C3/22B8:	F00A    	BEQ $22C4      ; Exit if not
C3/22BA:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/22BD:	A904    	LDA #$04       ; C3/1A8A
C3/22BF:	8527    	STA $27        ; Queue main menu
C3/22C1:	6426    	STZ $26        ; Next: Fade-out
C3/22C3:	60      	RTS            ; ...
C3/22C4:	60      	RTS

0E: Sustain Config menu
C3/22C5:	20E90E  	JSR $0EE9      ; Queue list upload
C3/22C8:	A50B    	LDA $0B        ; Semi-auto keys
C3/22CA:	8904    	BIT #$04       ; Pushing down?
C3/22CC:	F012    	BEQ $22E0      ; Branch if not
C3/22CE:	A54E    	LDA $4E        ; Cursor row
C3/22D0:	C908    	CMP #$08       ; On Controller?
C3/22D2:	D00C    	BNE $22E0      ; Branch if not
C3/22D4:	A950    	LDA #$50       ; C3/3A00
C3/22D6:	8526    	STA $26        ; Next: Scroll
C3/22D8:	A911    	LDA #$11       ; Frames: 17
C3/22DA:	8520    	STA $20        ; Set scroll timer
C3/22DC:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/22DF:	60      	RTS

Fork: Handle upward scrolling
C3/22E0:	A50B    	LDA $0B        ; Semi-auto keys
C3/22E2:	8908    	BIT #$08       ; Pushing up?
C3/22E4:	F014    	BEQ $22FA      ; Branch if not
C3/22E6:	A54E    	LDA $4E        ; On top row?
C3/22E8:	D010    	BNE $22FA      ; Branch if not
C3/22EA:	A54A    	LDA $4A        ; On first page?
C3/22EC:	F00C    	BEQ $22FA      ; Branch if so
C3/22EE:	A951    	LDA #$51       ; C3/3A21
C3/22F0:	8526    	STA $26        ; Next: Scroll
C3/22F2:	A911    	LDA #$11       ; Frames: 17
C3/22F4:	8520    	STA $20        ; Set scroll timer
C3/22F6:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/22F9:	60      	RTS

Fork: Handle B and D-Pad
C3/22FA:	A54A    	LDA $4A        ; On first page?
C3/22FC:	F005    	BEQ $2303      ; Branch if so
C3/22FE:	208438  	JSR $3884      ; Handle P2 D-Pad
C3/2301:	8003    	BRA $2306      ; Skip a line
C3/2303:	205E38  	JSR $385E      ; Handle P1 D-Pad
C3/2306:	A509    	LDA $09        ; No-autofire keys
C3/2308:	8980    	BIT #$80       ; Pushing B?
C3/230A:	F00A    	BEQ $2316      ; Branch if not
C3/230C:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/230F:	A904    	LDA #$04       ; C3/1A8A
C3/2311:	8527    	STA $27        ; Queue main menu
C3/2313:	6426    	STZ $26        ; Next: Fade-out
C3/2315:	60      	RTS

Fork: Handle left and right
C3/2316:	A50B    	LDA $0B        ; Semi-auto keys
C3/2318:	8901    	BIT #$01       ; Pushing right?
C3/231A:	D006    	BNE $2322      ; Branch if so
C3/231C:	A50B    	LDA $0B        ; ...
C3/231E:	8902    	BIT #$02       ; Pushing left?
C3/2320:	F003    	BEQ $2325      ; Branch if not
C3/2322:	4C2F3D  	JMP $3D2F      ; Change settings

Fork: Handle A
C3/2325:	A508    	LDA $08        ; No-autofire keys
C3/2327:	8980    	BIT #$80       ; Pushing A?
C3/2329:	F003    	BEQ $232E      ; Branch if not
C3/232B:	4C3123  	JMP $2331      ; Handle click

Fork: Handle L and R
C3/232E:	4CEC23  	JMP $23EC      ; Handle L and R

Fork: Handle clicked option
C3/2331:	A54E    	LDA $4E        ; Cursor row
C3/2333:	855F    	STA $5F        ; Set return row
C3/2335:	A54A    	LDA $4A        ; On first page?
C3/2337:	D009    	BNE $2342      ; Branch if not
C3/2339:	7B      	TDC            ; Clear A
C3/233A:	A54B    	LDA $4B        ; Cursor slot
C3/233C:	0A      	ASL A          ; Double it
C3/233D:	AA      	TAX            ; Index it
C3/233E:	7C4A23  	JMP ($234A,X)  ; Handle option

Waste of space...
C3/2341:	60      	RTS

Fork: Handle click on page 2
C3/2342:	7B      	TDC            ; Clear A
C3/2343:	A54B    	LDA $4B        ; Cursor slot
C3/2345:	0A      	ASL A          ; Double it
C3/2346:	AA      	TAX            ; Index it
C3/2347:	7C5C23  	JMP ($235C,X)  ; Handle option

Jump table for clicks in Config menu
C3/234A:	4123    	; Bat.Mode   (NOP)
C3/234C:	4123    	; Bat.Speed  (NOP)
C3/234E:	4123    	; Msg.Speed  (NOP)
C3/2350:	6823    	; Cmd.Set
C3/2352:	4123    	; Gauge      (NOP)
C3/2354:	4123    	; Sound      (NOP)
C3/2356:	4123    	; Cursor     (NOP)
C3/2358:	4123    	; Reequip    (NOP)
C3/235A:	7923    	; Controller
C3/235C:	4123    	; Mag.Order  (NOP)
C3/235E:	4123    	; Window     (NOP)
C3/2360:	8823    	; Color
C3/2362:	8823    	; R
C3/2364:	8823    	; G
C3/2366:	8823    	; B

Handle click on "Short" option
C3/2368:	AD4D1D  	LDA $1D4D      ; Game options
C3/236B:	8980    	BIT #$80       ; Short cmd set?
C3/236D:	F0D2    	BEQ $2341      ; Exit if not
C3/236F:	20B20E  	JSR $0EB2      ; Sound: Click
C3/2372:	A947    	LDA #$47       ; C3/42C2
C3/2374:	8527    	STA $27        ; Queue cmd menu
C3/2376:	6426    	STZ $26        ; Next: Fade-out
C3/2378:	60      	RTS

Handle click on "Multiple" option
C3/2379:	AD541D  	LDA $1D54      ; Multiplayer mode?
C3/237C:	10C3    	BPL $2341      ; Exit if not
C3/237E:	20B20E  	JSR $0EB2      ; Sound: Click
C3/2381:	A94B    	LDA #$4B       ; C3/46AD
C3/2383:	8527    	STA $27        ; Queue joypad menu
C3/2385:	6426    	STZ $26        ; Next: Fade-out
C3/2387:	60      	RTS

Handle color resetting in options
C3/2388:	20B20E  	JSR $0EB2      ; Sound: Click
C3/238B:	AD541D  	LDA $1D54      ; Game options
C3/238E:	2938    	AND #$38       ; Get viewed color
C3/2390:	F009    	BEQ $239B      ; Branch if font
C3/2392:	20A723  	JSR $23A7      ; Reset skin colors
C3/2395:	20873A  	JSR $3A87      ; Refresh skin
C3/2398:	4CC341  	JMP $41C3      ; Redraw RGB info

Fork: Reset font color
C3/239B:	A0FF7F  	LDY #$7FFF     ; Color: White
C3/239E:	8C551D  	STY $1D55      ; Put in options
C3/23A1:	20993F  	JSR $3F99      ; Put in palettes
C3/23A4:	4CC341  	JMP $41C3      ; Redraw RGB info

Reset skin palette
C3/23A7:	7B      	TDC            ; Clear A
C3/23A8:	AD4E1D  	LDA $1D4E      ; Game options
C3/23AB:	290F    	AND #$0F       ; Get wallpaper
C3/23AD:	C220    	REP #$20       ; 16-bit A
C3/23AF:	A8      	TAY            ; Set loop counter
C3/23B0:	64EB    	STZ $EB        ; RAM index: 0
C3/23B2:	64ED    	STZ $ED        ; ROM index: 0
C3/23B4:	88      	DEY            ; Counter -1
C3/23B5:	3012    	BMI $23C9      ; Branch if < 0
C3/23B7:	A90E00  	LDA #$000E     ; RAM struct size
C3/23BA:	18      	CLC            ; Prepare ADC
C3/23BB:	65EB    	ADC $EB        ; Add RAM index
C3/23BD:	85EB    	STA $EB        ; Set RAM index
C3/23BF:	A92000  	LDA #$0020     ; ROM struct size
C3/23C2:	18      	CLC            ; Prepare ADC
C3/23C3:	65ED    	ADC $ED        ; Add ROM index
C3/23C5:	85ED    	STA $ED        ; Set ROM index
C3/23C7:	80EB    	BRA $23B4      ; Loop

Fork: Load skin palette
C3/23C9:	A22B31  	LDX #$312B     ; 7E/312B
C3/23CC:	8E8121  	STX $2181      ; Set WRAM LBs
C3/23CF:	A5EB    	LDA $EB        ; RAM index
C3/23D1:	A8      	TAY            ; Index it
C3/23D2:	A5ED    	LDA $ED        ; ROM index
C3/23D4:	AA      	TAX            ; Index it
C3/23D5:	E220    	SEP #$20       ; 8-bit A
C3/23D7:	A90E    	LDA #$0E       ; Colors: 7
C3/23D9:	85E9    	STA $E9        ; Set counter
C3/23DB:	BF021CED	LDA $ED1C02,X  ; Color data
C3/23DF:	99571D  	STA $1D57,Y    ; Put in options
C3/23E2:	8D8021  	STA $2180      ; Put in palette
C3/23E5:	E8      	INX            ; ROM index +1
C3/23E6:	C8      	INY            ; RAM index +1
C3/23E7:	C6E9    	DEC $E9        ; One less byte
C3/23E9:	D0F0    	BNE $23DB      ; Loop till last
C3/23EB:	60      	RTS

Handle L and R in Config menu
C3/23EC:	A508    	LDA $08        ; No-autofire keys
C3/23EE:	8910    	BIT #$10       ; Pushing R?
C3/23F0:	D004    	BNE $23F6      ; Branch if so
C3/23F2:	8920    	BIT #$20       ; Pushing L?
C3/23F4:	F015    	BEQ $240B      ; Exit if not
C3/23F6:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/23F9:	645F    	STZ $5F        ; Return loc...
C3/23FB:	A54A    	LDA $4A        ; On first page?
C3/23FD:	D007    	BNE $2406      ; Branch if not
C3/23FF:	A901    	LDA #$01       ; Screen: 2nd
C3/2401:	854A    	STA $4A        ; Set active page
C3/2403:	4CEA39  	JMP $39EA      ; Switch screens

Fork: On page 2
C3/2406:	644A    	STZ $4A        ; Page: 1st
C3/2408:	20F539  	JSR $39F5      ; Switch screens
C3/240B:	60      	RTS

0F: Handle Order menu choice 1
C3/240C:	204835  	JSR $3548      ; Redraw time
C3/240F:	208969  	JSR $6989      ; Set SRAM party
C3/2412:	A509    	LDA $09        ; No-autofire keys
C3/2414:	8980    	BIT #$80       ; Pushing B?
C3/2416:	D006    	BNE $241E      ; Branch if so
C3/2418:	A509    	LDA $09        ; ...
C3/241A:	8901    	BIT #$01       ; Pushing right?
C3/241C:	F019    	BEQ $2437      ; Branch if not
C3/241E:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/2421:	A906    	LDA #$06       ; Frames: 6
C3/2423:	8520    	STA $20        ; Set scroll timer
C3/2425:	A00C00  	LDY #$000C     ; Speed: 12
C3/2428:	849C    	STY $9C        ; Set scroll speed
C3/242A:	A905    	LDA #$05       ; Blinker: Off
C3/242C:	1446    	TRB $46        ; Order cursor: Off
C3/242E:	A903    	LDA #$03       ; C3/1D94
C3/2430:	8527    	STA $27        ; Queue: Main menu
C3/2432:	A965    	LDA #$65       ; C3/36E7
C3/2434:	8526    	STA $26        ; Next: Pan screen
C3/2436:	60      	RTS

Fork: Handle A
C3/2437:	A508    	LDA $08        ; No-autofire keys
C3/2439:	8980    	BIT #$80       ; Pushing A?
C3/243B:	F015    	BEQ $2452      ; Exit if not
C3/243D:	20B20E  	JSR $0EB2      ; Sound: Click
C3/2440:	A54B    	LDA $4B        ; Selected slot
C3/2442:	8528    	STA $28        ; Set choice 1
C3/2444:	A910    	LDA #$10       ; C3/2453
C3/2446:	8526    	STA $26        ; Next: Choice 2
C3/2448:	20212F  	JSR $2F21      ; Create blinker
C3/244B:	20B12F  	JSR $2FB1      ; Unlock all slots
C3/244E:	A54E    	LDA $4E        ; Cursor row
C3/2450:	855E    	STA $5E        ; Save for cancel
C3/2452:	60      	RTS

10: Handle Order menu choice 2
C3/2453:	204835  	JSR $3548      ; Redraw time
C3/2456:	A509    	LDA $09        ; No-autofire keys
C3/2458:	8980    	BIT #$80       ; Pushing B?
C3/245A:	F013    	BEQ $246F      ; Branch if not
C3/245C:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/245F:	A901    	LDA #$01       ; Blinker: Off
C3/2461:	1446    	TRB $46        ; Set menu flag
C3/2463:	A90F    	LDA #$0F       ; C3/240C
C3/2465:	8526    	STA $26        ; Next: Choice 1
C3/2467:	20982F  	JSR $2F98      ; Lock empty slots
C3/246A:	A55E    	LDA $5E        ; Old cursor row
C3/246C:	854E    	STA $4E        ; Set as current
C3/246E:	60      	RTS

Fork: Change row
C3/246F:	A508    	LDA $08        ; No-autofire keys
C3/2471:	8980    	BIT #$80       ; Pushing A?
C3/2473:	F033    	BEQ $24A8      ; Exit if not
C3/2475:	20B20E  	JSR $0EB2      ; Sound: Click
C3/2478:	A528    	LDA $28        ; First selection
C3/247A:	C54B    	CMP $4B        ; Matches second?
C3/247C:	D013    	BNE $2491      ; Swap if not
C3/247E:	A901    	LDA #$01       ; Blinker: Off
C3/2480:	1446    	TRB $46        ; Set menu flag
C3/2482:	A912    	LDA #$12       ; C3/2537
C3/2484:	8526    	STA $26        ; Next: Wait
C3/2486:	20102E  	JSR $2E10      ; Set row, scroll
C3/2489:	A00C00  	LDY #$000C     ; Frames: 12
C3/248C:	8420    	STY $20        ; Set wait timer
C3/248E:	4C982F  	JMP $2F98      ; Lock empty slots

Fork: Switch members
C3/2491:	A910    	LDA #$10       ; Cursor: Freeze
C3/2493:	1446    	TRB $46        ; Set menu flag
C3/2495:	A90C    	LDA #$0C       ; Cursor: Blank
C3/2497:	1445    	TRB $45        ; Unhide chars: N
C3/2499:	208235  	JSR $3582      ; Queue swap anim
C3/249C:	A918    	LDA #$18       ; Frames: 24
C3/249E:	8522    	STA $22        ; Set anim timer
C3/24A0:	A901    	LDA #$01       ; Blinker: Off
C3/24A2:	1446    	TRB $46        ; Set menu flag
C3/24A4:	A911    	LDA #$11       ; C3/24A9
C3/24A6:	8526    	STA $26        ; Next: Sustain swap
C3/24A8:	60      	RTS

11: Switch members in Order menu
C3/24A9:	204835  	JSR $3548      ; Redraw time
C3/24AC:	A522    	LDA $22        ; Timer expired?
C3/24AE:	F030    	BEQ $24E0      ; Finalize if so
C3/24B0:	C90C    	CMP #$0C       ; Unhide point?
C3/24B2:	D039    	BNE $24ED      ; Exit if not
C3/24B4:	20F824  	JSR $24F8      ; Swap battle pads
C3/24B7:	20D12D  	JSR $2DD1      ; Swap actor info
C3/24BA:	20EE24  	JSR $24EE      ; Clear icons/faces
C3/24BD:	20156A  	JSR $6A15      ; Erase party info
C3/24C0:	20F132  	JSR $32F1      ; Draw member 1 info
C3/24C3:	203D33  	JSR $333D      ; Draw member 2 info
C3/24C6:	208933  	JSR $3389      ; Draw member 3 info
C3/24C9:	20D533  	JSR $33D5      ; Draw member 4 info
C3/24CC:	20BA0D  	JSR $0DBA      ; Swap saved cursors
C3/24CF:	20FD0E  	JSR $0EFD      ; Queue stats upload
C3/24D2:	20982F  	JSR $2F98      ; Lock empty slots
C3/24D5:	20B011  	JSR $11B0      ; Run anim queue
C3/24D8:	206813  	JSR $1368      ; Refresh screen
C3/24DB:	A908    	LDA #$08       ; Unhide members: Y
C3/24DD:	0445    	TSB $45        ; Set menu flag
C3/24DF:	60      	RTS

Fork: Restore control
C3/24E0:	A90F    	LDA #$0F       ; C3/240C
C3/24E2:	8526    	STA $26        ; Next: Choice 1
C3/24E4:	A910    	LDA #$10       ; Cursor: Unfreeze
C3/24E6:	0446    	TSB $46        ; Set menu flag
C3/24E8:	A904    	LDA #$04       ; Show cursor: Y
C3/24EA:	0445    	TSB $45        ; Set menu flag
C3/24EC:	60      	RTS            ; ...
C3/24ED:	60      	RTS

Delete all portraits and status icons
C3/24EE:	203C2E  	JSR $2E3C      ; Portraits: Erase
C3/24F1:	A901    	LDA #$01       ; Icons: Delete
C3/24F3:	1447    	TRB $47        ; Set menu flag
C3/24F5:	4CB011  	JMP $11B0      ; Run anim queue

Swap assigned joypad for switched members
C3/24F8:	7B      	TDC            ; Clear A
C3/24F9:	AA      	TAX            ; Member slot: 1
C3/24FA:	86E0    	STX $E0        ; Char 1+2: Pad 1
C3/24FC:	86E2    	STX $E2        ; Char 3+4: Pad 1
C3/24FE:	AD4F1D  	LDA $1D4F      ; Game options
C3/2501:	18      	CLC            ; Prepare ROR
C3/2502:	6A      	ROR A          ; Member's joypad
C3/2503:	9002    	BCC $2507      ; Skip if Pad 1
C3/2505:	F6E0    	INC $E0,X      ; Assign Pad 2
C3/2507:	E8      	INX            ; Member slot +1
C3/2508:	E00400  	CPX #$0004     ; Done all 4?
C3/250B:	D0F5    	BNE $2502      ; Loop if not
C3/250D:	7B      	TDC            ; Clear A
C3/250E:	A54B    	LDA $4B        ; Chosen slot B
C3/2510:	AA      	TAX            ; Index it
C3/2511:	B5E0    	LDA $E0,X      ; Member B's pad
C3/2513:	85E5    	STA $E5        ; Memorize it
C3/2515:	A528    	LDA $28        ; Chosen slot A
C3/2517:	AA      	TAX            ; Index it
C3/2518:	B5E0    	LDA $E0,X      ; Member A's pad
C3/251A:	85E6    	STA $E6        ; Memorize it
C3/251C:	A5E5    	LDA $E5        ; Member B's pad
C3/251E:	95E0    	STA $E0,X      ; Set as A's
C3/2520:	A54B    	LDA $4B        ; Chosen slot B
C3/2522:	AA      	TAX            ; Index it
C3/2523:	A5E6    	LDA $E6        ; Member A's pad
C3/2525:	95E0    	STA $E0,X      ; Set as B's
C3/2527:	18      	CLC            ; ...
C3/2528:	A5E3    	LDA $E3        ; Member 4's pad
C3/252A:	0A      	ASL A          ; Put in bit 1
C3/252B:	65E2    	ADC $E2        ; Add member 3's
C3/252D:	0A      	ASL A          ; Put in bit 1-2
C3/252E:	65E1    	ADC $E1        ; Add member 2's
C3/2530:	0A      	ASL A          ; Put in bit 1-3
C3/2531:	65E0    	ADC $E0        ; Add member 1's
C3/2533:	8D4F1D  	STA $1D4F      ; Update options
C3/2536:	60      	RTS

12: Wait while member changes row
C3/2537:	A420    	LDY $20        ; Timer expired?
C3/2539:	D004    	BNE $253F      ; Exit if not
C3/253B:	A90F    	LDA #$0F       ; C3/240C
C3/253D:	8526    	STA $26        ; Next: Choice 1
C3/253F:	60      	RTS

14: Sustain Save menu
C3/2540:	A54B    	LDA $4B        ; Cursor slot
C3/2542:	1A      	INC A          ; Now 1-3
C3/2543:	8566    	STA $66        ; Set save slot
C3/2545:	200319  	JSR $1903      ; Refresh actors
C3/2548:	20AA15  	JSR $15AA      ; Handle D-Pad
C3/254B:	A509    	LDA $09        ; No-autofire keys
C3/254D:	8980    	BIT #$80       ; Pushing B?
C3/254F:	F00C    	BEQ $255D      ; Branch if not
C3/2551:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/2554:	A59F    	LDA $9F        ; 04: C3/1A8A
C3/2556:	8527    	STA $27        ; Queue main menu
C3/2558:	A953    	LDA #$53       ; C3/19FB
C3/255A:	8526    	STA $26        ; Next: Fade-out
C3/255C:	60      	RTS

Fork: Handle A
C3/255D:	A508    	LDA $08        ; No-autofire keys
C3/255F:	8980    	BIT #$80       ; Pushing A?
C3/2561:	F039    	BEQ $259C      ; Exit if not
C3/2563:	7B      	TDC            ; Clear A
C3/2564:	A54B    	LDA $4B        ; Cursor slot
C3/2566:	0A      	ASL A          ; Double it
C3/2567:	AA      	TAX            ; Index it
C3/2568:	B491    	LDY $91,X      ; Blank file?
C3/256A:	D014    	BNE $2580      ; Branch if not
C3/256C:	A566    	LDA $66        ; Save slot
C3/256E:	8D1F02  	STA $021F      ; Link to game
C3/2571:	20B90E  	JSR $0EB9      ; Sound: Save
C3/2574:	20DF25  	JSR $25DF      ; Save game
C3/2577:	A59E    	LDA $9E        ; Menu init cmd
C3/2579:	8527    	STA $27        ; Queue Save menu
C3/257B:	A953    	LDA #$53       ; C3/19FB
C3/257D:	8526    	STA $26        ; Next: Fade-out
C3/257F:	60      	RTS

Fork: Invoke confirmation menu
C3/2580:	20B20E  	JSR $0EB2      ; Sound: Click
C3/2583:	20AC18  	JSR $18AC      ; Back up SRAM data
C3/2586:	A54B    	LDA $4B        ; Cursor slot
C3/2588:	1A      	INC A          ; Now 1-3
C3/2589:	8566    	STA $66        ; Set save slot
C3/258B:	206615  	JSR $1566      ; Load save file
C3/258E:	201569  	JSR $6915      ; Move party info
C3/2591:	208969  	JSR $6989      ; Set SRAM party
C3/2594:	A915    	LDA #$15       ; C3/1CE3
C3/2596:	8527    	STA $27        ; Queue submenu
C3/2598:	A953    	LDA #$53       ; C3/19FB
C3/259A:	8526    	STA $26        ; Next: Fade-out
C3/259C:	60      	RTS

16: Sustain save confirmation
C3/259D:	20DA15  	JSR $15DA      ; Handle D-Pad
C3/25A0:	A509    	LDA $09        ; No-autofire keys
C3/25A2:	8980    	BIT #$80       ; Pushing B?
C3/25A4:	D01C    	BNE $25C2      ; Abort if so
C3/25A6:	A508    	LDA $08        ; No-autofire keys
C3/25A8:	8980    	BIT #$80       ; Pushing A?
C3/25AA:	F032    	BEQ $25DE      ; Exit if not
C3/25AC:	A54B    	LDA $4B        ; Chose "No"?
C3/25AE:	D017    	BNE $25C7      ; Abort if so
C3/25B0:	A566    	LDA $66        ; Save slot
C3/25B2:	8D1F02  	STA $021F      ; Link to game
C3/25B5:	20B90E  	JSR $0EB9      ; Sound: Save
C3/25B8:	20DF25  	JSR $25DF      ; Save game
C3/25BB:	A59E    	LDA $9E        ; 13: C3/1CA0
C3/25BD:	8527    	STA $27        ; Queue Save menu
C3/25BF:	6426    	STZ $26        ; Next: Fade-out
C3/25C1:	60      	RTS

Fork: Pushing B
C3/25C2:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/25C5:	8003    	BRA $25CA      ; Skip a line

Fork: Chose "No"
C3/25C7:	20B20E  	JSR $0EB2      ; Sound: Click
C3/25CA:	20C118  	JSR $18C1      ; Restore SRAM
C3/25CD:	201569  	JSR $6915      ; And party info
C3/25D0:	208969  	JSR $6989      ; Set SRAM party
C3/25D3:	A913    	LDA #$13       ; C3/1CA0
C3/25D5:	8527    	STA $27        ; Queue Save menu
C3/25D7:	6426    	STZ $26        ; Next: Fade-out
C3/25D9:	A566    	LDA $66        ; File number
C3/25DB:	8D2402  	STA $0224      ; Set last viewed
C3/25DE:	60      	RTS

Restore SRAM block and record game data
C3/25DF:	20C118  	JSR $18C1      ; Restore SRAM
C3/25E2:	201569  	JSR $6915      ; And party info
C3/25E5:	208969  	JSR $6989      ; Set SRAM party
C3/25E8:	C220    	REP #$20       ; 16-bit A
C3/25EA:	EEC71D  	INC $1DC7      ; Save count +1
C3/25ED:	E220    	SEP #$20       ; 8-bit A
C3/25EF:	A566    	LDA $66        ; File number
C3/25F1:	4C1D15  	JMP $151D      ; Save game data

17: Handle Item menu options
C3/25F4:	A9C0    	LDA #$C0       ; Scrollbar: Off
C3/25F6:	1446    	TRB $46        ; Set anim index
C3/25F8:	A910    	LDA #$10       ; Reset/Stop desc
C3/25FA:	0445    	TSB $45        ; Set menu flag
C3/25FC:	20FD0E  	JSR $0EFD      ; Queue stock upload
C3/25FF:	208C7D  	JSR $7D8C      ; Handle D-Pad
C3/2602:	A509    	LDA $09        ; No-autofire keys
C3/2604:	8980    	BIT #$80       ; Pushing B?
C3/2606:	F009    	BEQ $2611      ; Branch if not
C3/2608:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/260B:	A904    	LDA #$04       ; C3/1A8A
C3/260D:	8527    	STA $27        ; Queue main menu
C3/260F:	6426    	STZ $26        ; Next: Fade-out
C3/2611:	A508    	LDA $08        ; No-autofire keys
C3/2613:	8980    	BIT #$80       ; Pushing A?
C3/2615:	F006    	BEQ $261D      ; Exit if not
C3/2617:	20B20E  	JSR $0EB2      ; Sound: Click
C3/261A:	201E26  	JSR $261E      ; Handle choice
C3/261D:	60      	RTS

Handle selected Item menu option
C3/261E:	7B      	TDC            ; Clear A
C3/261F:	A54B    	LDA $4B        ; Cursor slot
C3/2621:	0A      	ASL A          ; Double it
C3/2622:	AA      	TAX            ; Index it
C3/2623:	7C2626  	JMP ($2626,X)  ; Handle option

Jump table for the above
C3/2626:	2C26    	; USE
C3/2628:	7C26    	; ARRANGE
C3/262A:	8E26    	; RARE

Handle "USE" selection in Item menu
C3/262C:	201C7D  	JSR $7D1C      ; Load navig data
C3/262F:	AD4E1D  	LDA $1D4E      ; Game options
C3/2632:	2940    	AND #$40       ; Cursor memory?
C3/2634:	F005    	BEQ $263B      ; Branch if not
C3/2636:	20AC0D  	JSR $0DAC      ; Restore cursor
C3/2639:	8010    	BRA $264B      ; Skip cursor reset
C3/263B:	AD3102  	LDA $0231      ; Old scroll pos
C3/263E:	854A    	STA $4A        ; Set as current
C3/2640:	A44D    	LDY $4D        ; Cursor position
C3/2642:	844F    	STY $4F        ; Set as list loc
C3/2644:	A54A    	LDA $4A        ; Scroll position
C3/2646:	18      	CLC            ; Prepare ADC
C3/2647:	6550    	ADC $50        ; Add list V-Slot
C3/2649:	8550    	STA $50        ; Set list V-Slot
C3/264B:	20257D  	JSR $7D25      ; Relocate cursor
C3/264E:	200D7E  	JSR $7E0D      ; Draw inventory
C3/2651:	20F182  	JSR $82F1      ; Desc; item count
C3/2654:	20390F  	JSR $0F39      ; Queue BG3 upload
C3/2657:	206813  	JSR $1368      ; Refresh screen
C3/265A:	201F09  	JSR $091F      ; Create scrollbar
C3/265D:	C220    	REP #$20       ; 16-bit A
C3/265F:	A97000  	LDA #$0070     ; V-Speed: 0.44 px
C3/2662:	9F4A357E	STA $7E354A,X  ; Set scrollbar's
C3/2666:	A95800  	LDA #$0058     ; Y: 88
C3/2669:	9FCA347E	STA $7E34CA,X  ; Set scrollbar's
C3/266D:	E220    	SEP #$20       ; 8-bit A
C3/266F:	A908    	LDA #$08       ; C3/1EF7
C3/2671:	8526    	STA $26        ; Next: Choice 1
C3/2673:	A900    	LDA #$00       ; Min slot: 0
C3/2675:	A00EA8  	LDY #$A80E     ; C3/A80E
C3/2678:	207311  	JSR $1173      ; Queue desc update
C3/267B:	60      	RTS

Handle "ARRANGE" selection in Item menu
C3/267C:	20156A  	JSR $6A15      ; Hide inventory
C3/267F:	20B826  	JSR $26B8      ; Move inventory
C3/2682:	20E026  	JSR $26E0      ; Sort inventory
C3/2685:	20887F  	JSR $7F88      ; Redraw inventory
C3/2688:	20807D  	JSR $7D80      ; Load navig data
C3/268B:	4C2E1F  	JMP $1F2E      ; Move cursor, etc.

Initialize rare item menu
C3/268E:	20447D  	JSR $7D44      ; Load navig data
C3/2691:	AD4E1D  	LDA $1D4E      ; Game options
C3/2694:	2940    	AND #$40       ; Cursor memory?
C3/2696:	F005    	BEQ $269D      ; Branch if not
C3/2698:	AC3202  	LDY $0232      ; Former position
C3/269B:	844D    	STY $4D        ; Set as current
C3/269D:	204D7D  	JSR $7D4D      ; Relocate cursor
C3/26A0:	208B83  	JSR $838B      ; Draw item list
C3/26A3:	20991B  	JSR $1B99      ; Queue desc anim
C3/26A6:	203983  	JSR $8339      ; Get desc/draw count
C3/26A9:	20390F  	JSR $0F39      ; Queue count upload
C3/26AC:	206813  	JSR $1368      ; Refresh screen
C3/26AF:	A9C0    	LDA #$C0       ; Scrollbar: Off
C3/26B1:	1446    	TRB $46        ; Set anim index
C3/26B3:	A918    	LDA #$18       ; C3/2741
C3/26B5:	8526    	STA $26        ; Next: Sustain menu
C3/26B7:	60      	RTS

Relocate inventory for sorting, delete original
C3/26B8:	7B      	TDC            ; ...
C3/26B9:	AA      	TAX            ; Item slot: 1
C3/26BA:	BD6918  	LDA $1869,X    ; Item in slot
C3/26BD:	9F8DAA7E	STA $7EAA8D,X  ; Put in buffer
C3/26C1:	A9FF    	LDA #$FF       ; Empty item
C3/26C3:	9D6918  	STA $1869,X    ; Clear slot
C3/26C6:	E8      	INX            ; Item slot +1
C3/26C7:	E00001  	CPX #$0100     ; Done all 256?
C3/26CA:	D0EE    	BNE $26BA      ; Loop if not
C3/26CC:	7B      	TDC            ; Clear A
C3/26CD:	AA      	TAX            ; Item slot: 1
C3/26CE:	BD6919  	LDA $1969,X    ; Item quantity
C3/26D1:	9F8DAB7E	STA $7EAB8D,X  ; Put in buffer
C3/26D5:	7B      	TDC            ; Quantity: 0
C3/26D6:	9D6919  	STA $1969,X    ; Clear original
C3/26D9:	E8      	INX            ; Item slot +1
C3/26DA:	E00001  	CPX #$0100     ; Done all 256?
C3/26DD:	D0EF    	BNE $26CE      ; Loop if not
C3/26DF:	60      	RTS

Sort inventory based on item icons
C3/26E0:	7B      	TDC            ; Clear A
C3/26E1:	A8      	TAY            ; Item slot: 1
C3/26E2:	AA      	TAX            ; Icon index: 0
C3/26E3:	BFF526C3	LDA $C326F5,X  ; Item icon
C3/26E7:	DA      	PHX            ; Save index
C3/26E8:	85E0    	STA $E0        ; Set class
C3/26EA:	200627  	JSR $2706      ; Get such items
C3/26ED:	FA      	PLX            ; Icon index
C3/26EE:	E8      	INX            ; Index +1
C3/26EF:	E01100  	CPX #$0011     ; Done 17 icons?
C3/26F2:	D0EF    	BNE $26E3      ; Loop if not
C3/26F4:	60      	RTS

Ordered list of item icons for Arrange command
C3/26F5:	FF      	; No icon
C3/26F6:	D8      	; Dirk
C3/26F7:	D9      	; Sword
C3/26F8:	DA      	; Lance
C3/26F9:	DB      	; Knife
C3/26FA:	DC      	; Rod
C3/26FB:	DD      	; Brush
C3/26FC:	DE      	; Stars
C3/26FD:	DF      	; Special
C3/26FE:	E0      	; Gambler
C3/26FF:	E1      	; Claw
C3/2700:	E2      	; Shield
C3/2701:	E3      	; Helmet
C3/2702:	E4      	; Armor
C3/2703:	E5      	; Tool
C3/2704:	E6      	; Skean
C3/2705:	E7      	; Relic

Copy all items with given icon from buffer to inventory
C3/2706:	7B      	TDC            ; Clear A
C3/2707:	AA      	TAX            ; Buffer slot: 1
C3/2708:	DA      	PHX            ; Save buffer slot
C3/2709:	BF8DAA7E	LDA $7EAA8D,X  ; Item in slot
C3/270D:	C9FF    	CMP #$FF       ; None?
C3/270F:	F028    	BEQ $2739      ; Skip if so
C3/2711:	8D0242  	STA $4202      ; Set multiplicand
C3/2714:	A90D    	LDA #$0D       ; Name length
C3/2716:	8D0342  	STA $4203      ; Set multiplier
C3/2719:	EA      	NOP
C3/271A:	EA      	NOP
C3/271B:	EA      	NOP
C3/271C:	AE1642  	LDX $4216      ; Index product
C3/271F:	BF00B3D2	LDA $D2B300,X  ; Item icon
C3/2723:	C5E0    	CMP $E0        ; Sought type?
C3/2725:	D012    	BNE $2739      ; Skip if not
C3/2727:	FA      	PLX            ; Buffer slot
C3/2728:	BF8DAA7E	LDA $7EAA8D,X  ; Item in slot
C3/272C:	996918  	STA $1869,Y    ; Put in stock
C3/272F:	BF8DAB7E	LDA $7EAB8D,X  ; Item quantity
C3/2733:	996919  	STA $1969,Y    ; Put in stock
C3/2736:	C8      	INY            ; Stock slot +1
C3/2737:	8001    	BRA $273A      ; Skip a line
C3/2739:	FA      	PLX            ; Buffer slot
C3/273A:	E8      	INX            ; Buffer slot +1
C3/273B:	E00001  	CPX #$0100     ; Done all 256?
C3/273E:	D0C8    	BNE $2708      ; Loop if not
C3/2740:	60      	RTS

18: Sustain rare item menu
C3/2741:	A910    	LDA #$10       ; Description: On
C3/2743:	1445    	TRB $45        ; Set menu flag
C3/2745:	20FD0E  	JSR $0EFD      ; Queue list upload
C3/2748:	204A7D  	JSR $7D4A      ; Handle D-Pad
C3/274B:	203983  	JSR $8339      ; Get desc/draw count
C3/274E:	A509    	LDA $09        ; No-autofire keys
C3/2750:	8980    	BIT #$80       ; Pushing B?
C3/2752:	F024    	BEQ $2778      ; Exit if not
C3/2754:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/2757:	A917    	LDA #$17       ; C3/25F4
C3/2759:	8526    	STA $26        ; Next: Option list
C3/275B:	A44D    	LDY $4D        ; Cursor position
C3/275D:	8C3202  	STY $0232      ; To cursor memory
C3/2760:	20807D  	JSR $7D80      ; Load navig data
C3/2763:	AD4E1D  	LDA $1D4E      ; Game options
C3/2766:	2940    	AND #$40       ; Cursor memory?
C3/2768:	F005    	BEQ $276F      ; Branch if not
C3/276A:	AC3402  	LDY $0234      ; Former position
C3/276D:	844D    	STY $4D        ; Set as current
C3/276F:	20867D  	JSR $7D86      ; Relocate cursor
C3/2772:	208583  	JSR $8385      ; Blank item count
C3/2775:	4C390F  	JMP $0F39      ; Queue its upload
C3/2778:	60      	RTS

19: Handle Item menu choice 2
C3/2779:	20FD0E  	JSR $0EFD      ; Queue list upload
C3/277C:	20227D  	JSR $7D22      ; Handle D-Pad
C3/277F:	20F182  	JSR $82F1      ; Load description
C3/2782:	A509    	LDA $09        ; No-autofire keys
C3/2784:	8980    	BIT #$80       ; Pushing B?
C3/2786:	F00C    	BEQ $2794      ; Branch if not
C3/2788:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/278B:	A901    	LDA #$01       ; Blinker: Off
C3/278D:	1446    	TRB $46        ; Set menu flag
C3/278F:	A908    	LDA #$08       ; C3/1EF7
C3/2791:	8526    	STA $26        ; Next: Choice 1
C3/2793:	60      	RTS

Fork: Handle A
C3/2794:	A508    	LDA $08        ; No-autofire keys
C3/2796:	8980    	BIT #$80       ; Pushing A?
C3/2798:	F047    	BEQ $27E1      ; Exit if not
C3/279A:	20B20E  	JSR $0EB2      ; Sound: Click
C3/279D:	A528    	LDA $28        ; First selection
C3/279F:	C54B    	CMP $4B        ; Matches second?
C3/27A1:	D007    	BNE $27AA      ; Swap them if not
C3/27A3:	A901    	LDA #$01       ; Blinker: Off
C3/27A5:	1446    	TRB $46        ; Set menu flag
C3/27A7:	4C9784  	JMP $8497      ; Handle item

Fork: Switch items
C3/27AA:	A910    	LDA #$10       ; Reset/Stop desc
C3/27AC:	0445    	TSB $45        ; Set menu flag
C3/27AE:	A901    	LDA #$01       ; Blinker: Off
C3/27B0:	1446    	TRB $46        ; Set menu flag
C3/27B2:	A908    	LDA #$08       ; C3/1EF7
C3/27B4:	8526    	STA $26        ; Next: Choice 1
C3/27B6:	7B      	TDC            ; Clear A
C3/27B7:	A528    	LDA $28        ; Slot A
C3/27B9:	A8      	TAY            ; Index it
C3/27BA:	B96918  	LDA $1869,Y    ; Item A
C3/27BD:	85E0    	STA $E0        ; Save it
C3/27BF:	B96919  	LDA $1969,Y    ; Quantity A
C3/27C2:	85E1    	STA $E1        ; Save it
C3/27C4:	7B      	TDC            ; ...
C3/27C5:	A54B    	LDA $4B        ; Slot B
C3/27C7:	AA      	TAX            ; Index it
C3/27C8:	BD6918  	LDA $1869,X    ; Item B
C3/27CB:	996918  	STA $1869,Y    ; Replace A
C3/27CE:	A5E0    	LDA $E0        ; Item A
C3/27D0:	9D6918  	STA $1869,X    ; Replace B
C3/27D3:	BD6919  	LDA $1969,X    ; Quantity B
C3/27D6:	996919  	STA $1969,Y    ; Replace A
C3/27D9:	A5E1    	LDA $E1        ; Quantity A
C3/27DB:	9D6919  	STA $1969,X    ; Replace B
C3/27DE:	4C887F  	JMP $7F88      ; Redraw list
C3/27E1:	60      	RTS

1A: Sustain Magic menu
C3/27E2:	A910    	LDA #$10       ; Description: On
C3/27E4:	1445    	TRB $45        ; Set menu flag
C3/27E6:	A901    	LDA #$01       ; List type: Magic
C3/27E8:	852A    	STA $2A        ; Set redraw mode
C3/27EA:	20FD0E  	JSR $0EFD      ; Queue list upload
C3/27ED:	AD1E02  	LDA $021E      ; Frame counter
C3/27F0:	6A      	ROR A          ; Even value?
C3/27F1:	9005    	BCC $27F8      ; Favor desc if so
C3/27F3:	20750F  	JSR $0F75      ; Queue cost upload
C3/27F6:	8003    	BRA $27FB      ; Skip a line
C3/27F8:	2091A9  	JSR $A991      ; Queue desc upload
C3/27FB:	20641F  	JSR $1F64      ; Handle L and R
C3/27FE:	B061    	BCS $2861      ; Exit if pushed
C3/2800:	20884B  	JSR $4B88      ; Handle D-Pad
C3/2803:	20E556  	JSR $56E5      ; Load description
C3/2806:	20C651  	JSR $51C6      ; Draw MP cost

Fork: Handle Y
C3/2809:	A509    	LDA $09        ; No-autofire keys
C3/280B:	8940    	BIT #$40       ; Pushing Y?
C3/280D:	F013    	BEQ $2822      ; Branch if not
C3/280F:	20B20E  	JSR $0EB2      ; Sound: Click
C3/2812:	A59E    	LDA $9E        ; MP display switch
C3/2814:	49FF    	EOR #$FF       ; Toggle it
C3/2816:	859E    	STA $9E        ; Save changes
C3/2818:	A910    	LDA #$10       ; Reset/Stop desc
C3/281A:	0445    	TSB $45        ; Set menu flag
C3/281C:	201C4F  	JSR $4F1C      ; Build spell list
C3/281F:	4C874F  	JMP $4F87      ; Draw spell list

Fork: Handle A
C3/2822:	A508    	LDA $08        ; No-autofire keys
C3/2824:	8980    	BIT #$80       ; Pushing A?
C3/2826:	F02D    	BEQ $2855      ; Branch if not
C3/2828:	7B      	TDC            ; Clear A
C3/2829:	A54B    	LDA $4B        ; Spell slot
C3/282B:	AA      	TAX            ; Index it
C3/282C:	BF099E7E	LDA $7E9E09,X  ; Spell palette
C3/2830:	C920    	CMP #$20       ; User's color?
C3/2832:	D02E    	BNE $2862      ; Fail if not
C3/2834:	20B20E  	JSR $0EB2      ; Sound: Click
C3/2837:	A44F    	LDY $4F        ; Cursor position
C3/2839:	848E    	STY $8E        ; Set return loc
C3/283B:	A54A    	LDA $4A        ; Scroll position
C3/283D:	8590    	STA $90        ; Set return loc
C3/283F:	A54B    	LDA $4B        ; Cursor slot
C3/2841:	8599    	STA $99        ; Set spell slot
C3/2843:	20132D  	JSR $2D13      ; Spell
C3/2846:	C912    	CMP #$12       ; X-Zone?
C3/2848:	F01F    	BEQ $2869      ; Branch if so
C3/284A:	C92A    	CMP #$2A       ; Warp?
C3/284C:	F026    	BEQ $2874      ; Branch if so
C3/284E:	A93A    	LDA #$3A       ; C3/2A65
C3/2850:	8527    	STA $27        ; Queue usage menu
C3/2852:	6426    	STZ $26        ; Next: Fade-out
C3/2854:	60      	RTS

Fork: Handle B
C3/2855:	A509    	LDA $09        ; No-autofire keys
C3/2857:	8980    	BIT #$80       ; Pushing B?
C3/2859:	F006    	BEQ $2861      ; Exit if not
C3/285B:	20FD0E  	JSR $0EFD      ; Queue BG1 upload
C3/285E:	20A529  	JSR $29A5      ; Exit submenu
C3/2861:	60      	RTS

Fork: Unusable spell
C3/2862:	20C00E  	JSR $0EC0      ; Play buzzer
C3/2865:	205D30  	JSR $305D      ; Pixelate screen
C3/2868:	60      	RTS

Fork: X-Zone (unused)
C3/2869:	AD0102  	LDA $0201      ; Area permissions
C3/286C:	8901    	BIT #$01       ; Forbid X-Zone?
C3/286E:	F0F2    	BEQ $2862      ; Fail if so
C3/2870:	A904    	LDA #$04       ; Event: X-Zone
C3/2872:	8009    	BRA $287D      ; Lower caster's MP

Fork: Warp
C3/2874:	AD0102  	LDA $0201      ; Area permissions
C3/2877:	8902    	BIT #$02       ; Can warp here?
C3/2879:	F0E7    	BEQ $2862      ; Fail if not
C3/287B:	A903    	LDA #$03       ; Event: Warp
C3/287D:	8D0502  	STA $0205      ; Set aftereffect
C3/2880:	20EA2C  	JSR $2CEA      ; Lower caster's MP
C3/2883:	A9FF    	LDA #$FF       ; Null value
C3/2885:	8527    	STA $27        ; Queue menu exit
C3/2887:	6426    	STZ $26        ; Next: Fade-out
C3/2889:	60      	RTS

1B: Sustain Lore menu
C3/288A:	A910    	LDA #$10       ; Description: On
C3/288C:	1445    	TRB $45        ; Set menu flag
C3/288E:	A902    	LDA #$02       ; List type: Lores
C3/2890:	852A    	STA $2A        ; Set redraw mode
C3/2892:	20FD0E  	JSR $0EFD      ; Queue list upload
C3/2895:	20641F  	JSR $1F64      ; Handle L and R
C3/2898:	B00F    	BCS $28A9      ; Exit if pushed
C3/289A:	20FA4B  	JSR $4BFA      ; Handle D-Pad
C3/289D:	20EB56  	JSR $56EB      ; Load description
C3/28A0:	A509    	LDA $09        ; No-autofire keys
C3/28A2:	8980    	BIT #$80       ; Pushing B?
C3/28A4:	F003    	BEQ $28A9      ; Exit if not
C3/28A6:	20A529  	JSR $29A5      ; Leave submenu
C3/28A9:	60      	RTS

1C: Sustain Dance menu
C3/28AA:	20FD0E  	JSR $0EFD      ; Queue list upload
C3/28AD:	20D44B  	JSR $4BD4      ; Handle D-Pad
C3/28B0:	A509    	LDA $09        ; No-autofire keys
C3/28B2:	8980    	BIT #$80       ; Pushing B?
C3/28B4:	F003    	BEQ $28B9      ; Exit if not
C3/28B6:	20A529  	JSR $29A5      ; Leave submenu
C3/28B9:	60      	RTS

1D: Sustain Rage menu
C3/28BA:	A903    	LDA #$03       ; List type: Rages
C3/28BC:	852A    	STA $2A        ; Set redraw mode
C3/28BE:	20FD0E  	JSR $0EFD      ; Queue list upload
C3/28C1:	20641F  	JSR $1F64      ; Handle L and R
C3/28C4:	B00C    	BCS $28D2      ; Exit if pushed
C3/28C6:	20524C  	JSR $4C52      ; Handle D-Pad
C3/28C9:	A509    	LDA $09        ; No-autofire keys
C3/28CB:	8980    	BIT #$80       ; Pushing B?
C3/28CD:	F003    	BEQ $28D2      ; Exit if not
C3/28CF:	20A529  	JSR $29A5      ; Leave submenu
C3/28D2:	60      	RTS

1E: Handle esper selection
C3/28D3:	A910    	LDA #$10       ; Description: On
C3/28D5:	1445    	TRB $45        ; Set menu flag
C3/28D7:	A904    	LDA #$04       ; List type: Espers
C3/28D9:	852A    	STA $2A        ; Set redraw mode
C3/28DB:	20FD0E  	JSR $0EFD      ; Queue list upload
C3/28DE:	20641F  	JSR $1F64      ; Handle L and R
C3/28E1:	B045    	BCS $2928      ; Exit if pushed
C3/28E3:	201E4C  	JSR $4C1E      ; Handle D-Pad
C3/28E6:	20DF56  	JSR $56DF      ; Load description
C3/28E9:	A508    	LDA $08        ; No-autofire keys
C3/28EB:	8980    	BIT #$80       ; Pushing A?
C3/28ED:	F02C    	BEQ $291B      ; Branch if not
C3/28EF:	20B20E  	JSR $0EB2      ; Sound: Click
C3/28F2:	7B      	TDC            ; Clear A
C3/28F3:	A54B    	LDA $4B        ; Selected slot
C3/28F5:	AA      	TAX            ; Index it
C3/28F6:	BF899D7E	LDA $7E9D89,X  ; Esper in slot
C3/28FA:	C9FF    	CMP #$FF       ; None?
C3/28FC:	F00A    	BEQ $2908      ; Unequip if so
C3/28FE:	8599    	STA $99        ; Memorize esper
C3/2900:	209758  	JSR $5897      ; Init submenu
C3/2903:	A94D    	LDA #$4D       ; C3/58CE
C3/2905:	8526    	STA $26        ; Next: Data menu
C3/2907:	60      	RTS

Fork: Unequip esper
C3/2908:	A9FF    	LDA #$FF       ; Value for empty
C3/290A:	85E0    	STA $E0        ; Set esper to equip
C3/290C:	202929  	JSR $2929      ; Clear esper held
C3/290F:	206C54  	JSR $546C      ; Redraw esper list
C3/2912:	20110F  	JSR $0F11      ; Queue stats upload
C3/2915:	206813  	JSR $1368      ; Refresh held esper
C3/2918:	4CFD0E  	JMP $0EFD      ; Queue list upload

Fork: Handle B
C3/291B:	A509    	LDA $09        ; No-autofire keys
C3/291D:	8980    	BIT #$80       ; Pushing B?
C3/291F:	F007    	BEQ $2928      ; Exit if not
C3/2921:	A908    	LDA #$08       ; Blinker: Off
C3/2923:	1446    	TRB $46        ; Set menu flag
C3/2925:	20A529  	JSR $29A5      ; Leave submenu
C3/2928:	60      	RTS

Equip and draw selected esper
C3/2929:	7B      	TDC            ; Clear A
C3/292A:	A528    	LDA $28        ; Member slot
C3/292C:	0A      	ASL A          ; Double it
C3/292D:	AA      	TAX            ; Index it
C3/292E:	B46D    	LDY $6D,X      ; Actor's address
C3/2930:	A5E0    	LDA $E0        ; Chosen esper
C3/2932:	991E00  	STA $001E,Y    ; Assign to actor
C3/2935:	A5E0    	LDA $E0        ; ...
C3/2937:	4C084F  	JMP $4F08      ; Draw it by actor

34: Wait while showing who holds esper
C3/293A:	A420    	LDY $20        ; Timer expired?
C3/293C:	D009    	BNE $2947      ; Exit if not
C3/293E:	A04829  	LDY #$2948     ; Text pointer
C3/2941:	20F902  	JSR $02F9      ; Blank message
C3/2944:	4C1359  	JMP $5913      ; Exit submenu
C3/2947:	60      	RTS

Positioned spaces for blanking "<actor> has it!"
C3/2948:	CD40 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00

39: Sustain party gear overview
C3/2966:	A509    	LDA $09        ; No-autofire keys
C3/2968:	8980    	BIT #$80       ; Pushing B?
C3/296A:	F00A    	BEQ $2976      ; Exit if not
C3/296C:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/296F:	A904    	LDA #$04       ; C3/1A8A
C3/2971:	8527    	STA $27        ; Queue main menu
C3/2973:	6426    	STZ $26        ; Next: Fade-out
C3/2975:	60      	RTS            ; ...
C3/2976:	60      	RTS

33: Sustain Blitz menu
C3/2977:	A910    	LDA #$10       ; Description: On
C3/2979:	1445    	TRB $45        ; Set menu flag
C3/297B:	20FD0E  	JSR $0EFD      ; Queue list upload
C3/297E:	20D44B  	JSR $4BD4      ; Handle D-Pad
C3/2981:	201557  	JSR $5715      ; Load description
C3/2984:	A509    	LDA $09        ; No-autofire keys
C3/2986:	8980    	BIT #$80       ; Pushing B?
C3/2988:	F003    	BEQ $298D      ; Exit if not
C3/298A:	20A529  	JSR $29A5      ; Leave submenu
C3/298D:	60      	RTS

3E: Sustain SwdTech menu
C3/298E:	A910    	LDA #$10       ; Description: On
C3/2990:	1445    	TRB $45        ; Set menu flag
C3/2992:	20FD0E  	JSR $0EFD      ; Queue list upload
C3/2995:	20D44B  	JSR $4BD4      ; Handle D-Pad
C3/2998:	200057  	JSR $5700      ; Load description
C3/299B:	A509    	LDA $09        ; No-autofire keys
C3/299D:	8980    	BIT #$80       ; Pushing B?
C3/299F:	F003    	BEQ $29A4      ; Exit if not
C3/29A1:	20A529  	JSR $29A5      ; Leave submenu
C3/29A4:	60      	RTS

Return to Skills menu
C3/29A5:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/29A8:	A400    	LDY $00        ; X: 0
C3/29AA:	8439    	STY $39        ; Set BG2 X-Pos
C3/29AC:	843D    	STY $3D        ; Set BG3 X-Pos
C3/29AE:	A90A    	LDA #$0A       ; C3/1FF4
C3/29B0:	8526    	STA $26        ; Next: Skills menu
C3/29B2:	20274D  	JSR $4D27      ; Erase spell list
C3/29B5:	20504B  	JSR $4B50      ; Load navig data
C3/29B8:	A55E    	LDA $5E        ; Old cursor row
C3/29BA:	854E    	STA $4E        ; Set as current
C3/29BC:	20594B  	JSR $4B59      ; Relocate cursor
C3/29BF:	4C0758  	JMP $5807      ; Remove portrait

21: Sustain Load menu
C3/29C2:	A54B    	LDA $4B        ; Cursor slot
C3/29C4:	8566    	STA $66        ; Set save slot
C3/29C6:	200319  	JSR $1903      ; Refresh actors
C3/29C9:	20BE15  	JSR $15BE      ; Handle D-Pad
C3/29CC:	A508    	LDA $08        ; No-autofire keys
C3/29CE:	8980    	BIT #$80       ; Pushing A?
C3/29D0:	F034    	BEQ $2A06      ; Exit if not
C3/29D2:	7B      	TDC            ; Clear A
C3/29D3:	A54B    	LDA $4B        ; On new game?
C3/29D5:	F030    	BEQ $2A07      ; Branch if so
C3/29D7:	8566    	STA $66        ; Set save slot
C3/29D9:	3A      	DEC A          ; Now 0-2
C3/29DA:	0A      	ASL A          ; Double it
C3/29DB:	AA      	TAX            ; Index it
C3/29DC:	B491    	LDY $91,X      ; Blank file?
C3/29DE:	F020    	BEQ $2A00      ; Fail if so
C3/29E0:	20AC18  	JSR $18AC      ; Back up SRAM data
C3/29E3:	20B20E  	JSR $0EB2      ; Sound: Click
C3/29E6:	A566    	LDA $66        ; Chosen save file
C3/29E8:	8D2402  	STA $0224      ; Set last viewed
C3/29EB:	206615  	JSR $1566      ; Load save file
C3/29EE:	201569  	JSR $6915      ; Move party info
C3/29F1:	208969  	JSR $6989      ; Set SRAM party
C3/29F4:	209515  	JSR $1595      ; Move timer data
C3/29F7:	A922    	LDA #$22       ; C3/1D51
C3/29F9:	8527    	STA $27        ; Queue confirm menu
C3/29FB:	A953    	LDA #$53       ; C3/19FB
C3/29FD:	8526    	STA $26        ; Next: Fade-out
C3/29FF:	60      	RTS

Fork: Blank file
C3/2A00:	20C00E  	JSR $0EC0      ; Play buzzer
C3/2A03:	205D30  	JSR $305D      ; Pixelate screen
C3/2A06:	60      	RTS

Fork: New game
C3/2A07:	20B20E  	JSR $0EB2      ; Sound: Click
C3/2A0A:	20212A  	JSR $2A21      ; Reset play time
C3/2A0D:	A901    	LDA #$01       ; Save file: 1st
C3/2A0F:	8D2402  	STA $0224      ; Set last viewed
C3/2A12:	9C1F02  	STZ $021F      ; Game's file: None
C3/2A15:	9C0502  	STZ $0205      ; Set new game mode
C3/2A18:	A9FF    	LDA #$FF       ; Null value
C3/2A1A:	8527    	STA $27        ; Queue menu exit
C3/2A1C:	A953    	LDA #$53       ; C3/19FB
C3/2A1E:	8526    	STA $26        ; Next: Fade-out
C3/2A20:	60      	RTS

Reset play time
C3/2A21:	7B      	TDC            ; Clear A
C3/2A22:	A8      	TAY            ; Clear Y
C3/2A23:	8C1B02  	STY $021B      ; Zero hours, mins
C3/2A26:	8C1D02  	STY $021D      ; Zero secs, frames
C3/2A29:	60      	RTS

23: Sustain load confirmation
C3/2A2A:	20DA15  	JSR $15DA      ; Handle D-Pad
C3/2A2D:	A509    	LDA $09        ; No-autofire keys
C3/2A2F:	8980    	BIT #$80       ; Pushing B?
C3/2A31:	D025    	BNE $2A58      ; Abort if so
C3/2A33:	A508    	LDA $08        ; No-autofire keys
C3/2A35:	8980    	BIT #$80       ; Pushing A?
C3/2A37:	F02B    	BEQ $2A64      ; Exit if not
C3/2A39:	20B20E  	JSR $0EB2      ; Sound: Click
C3/2A3C:	A54B    	LDA $4B        ; Chose "No"?
C3/2A3E:	D01B    	BNE $2A5B      ; Abort if so
C3/2A40:	AC6318  	LDY $1863      ; File's hrs, mins
C3/2A43:	8C1B02  	STY $021B      ; Set as current
C3/2A46:	AD6518  	LDA $1865      ; File's seconds
C3/2A49:	8D1D02  	STA $021D      ; Set as current
C3/2A4C:	A566    	LDA $66        ; Loaded file
C3/2A4E:	8D1F02  	STA $021F      ; Link to game
C3/2A51:	A9FF    	LDA #$FF       ; Null value
C3/2A53:	8527    	STA $27        ; Queue menu exit
C3/2A55:	6426    	STZ $26        ; Next: Fade-out
C3/2A57:	60      	RTS

Fork: Chose "No"
C3/2A58:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/2A5B:	20C118  	JSR $18C1      ; Restore SRAM
C3/2A5E:	A920    	LDA #$20       ; C3/1D03
C3/2A60:	8527    	STA $27        ; Queue Load menu
C3/2A62:	6426    	STZ $26        ; Next: Fade-out
C3/2A64:	60      	RTS

3A: Initialize spell usage menu
C3/2A65:	A940    	LDA #$40       ; No cursor memory
C3/2A67:	0445    	TSB $45        ; Set menu flag
C3/2A69:	20762A  	JSR $2A76      ; Init variables
C3/2A6C:	201258  	JSR $5812      ; Draw menu
C3/2A6F:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/2A72:	A93B    	LDA #$3B       ; Queue: Sustain menu
C3/2A74:	802F    	BRA $2AA5      ; Next: Fade-in

Initialize variables for spell or item usage menu
C3/2A76:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/2A79:	A901    	LDA #$01       ; CGRAM: Refresh
C3/2A7B:	0445    	TSB $45        ; Set NMI flag
C3/2A7D:	A904    	LDA #$04       ; Channel: 2
C3/2A7F:	0443    	TSB $43        ; Queue Win1 HDMA
C3/2A81:	641B    	STZ $1B        ; Null VRAM ptr LB
C3/2A83:	641C    	STZ $1C        ; Null VRAM ptr HB
C3/2A85:	200469  	JSR $6904      ; Reset BGs' X/Y
C3/2A88:	20A81B  	JSR $1BA8      ; Load portraits
C3/2A8B:	A903    	LDA #$03       ; 64x64 at $0000
C3/2A8D:	8D0721  	STA $2107      ; Set BG1 map loc
C3/2A90:	A9C0    	LDA #$C0       ; Channels: 6, 7
C3/2A92:	1443    	TRB $43        ; Halt HDMA 6+7
C3/2A94:	A00200  	LDY #$0002     ; Y: 2
C3/2A97:	8437    	STY $37        ; Set BG1 Y-Pos
C3/2A99:	20982F  	JSR $2F98      ; Preload nav data
C3/2A9C:	A900    	LDA #$00       ; Min slot: 0
C3/2A9E:	A0C02F  	LDY #$2FC0     ; C3/2FC0
C3/2AA1:	207311  	JSR $1173      ; Queue D-Pad fn
C3/2AA4:	60      	RTS

Set queued menu command, trigger fade-in
C3/2AA5:	8527    	STA $27        ; Set queued cmd
C3/2AA7:	A901    	LDA #$01       ; C3/1D7E
C3/2AA9:	8526    	STA $26        ; Next: Fade-in
C3/2AAB:	4C4135  	JMP $3541      ; BRT:1 + NMI

3B: Handle single-target spell
C3/2AAE:	A508    	LDA $08        ; No-autofire keys
C3/2AB0:	8910    	BIT #$10       ; Pushing R?
C3/2AB2:	D012    	BNE $2AC6      ; Branch if so
C3/2AB4:	A508    	LDA $08        ; ...
C3/2AB6:	8920    	BIT #$20       ; Pushing L?
C3/2AB8:	D00C    	BNE $2AC6      ; Branch if so
C3/2ABA:	A509    	LDA $09        ; No-autofire keys
C3/2ABC:	8901    	BIT #$01       ; Pushing right?
C3/2ABE:	D006    	BNE $2AC6      ; Branch if so
C3/2AC0:	A509    	LDA $09        ; ...
C3/2AC2:	8902    	BIT #$02       ; Pushing left?
C3/2AC4:	F02D    	BEQ $2AF3      ; Branch if not
C3/2AC6:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/2AC9:	20132D  	JSR $2D13      ; Spell
C3/2ACC:	20F550  	JSR $50F5      ; Compute index
C3/2ACF:	C221    	REP #$21       ; 16-bit A; C-
C3/2AD1:	AD3421  	LDA $2134      ; Load index
C3/2AD4:	690000  	ADC #$0000     ; Add 0...
C3/2AD7:	AA      	TAX            ; Index it
C3/2AD8:	7B      	TDC            ; Clear A
C3/2AD9:	E220    	SEP #$20       ; 8-bit A
C3/2ADB:	BFC06AC4	LDA $C46AC0,X  ; Spell properties
C3/2ADF:	2920    	AND #$20       ; Can multi-target?
C3/2AE1:	F010    	BEQ $2AF3      ; Branch if not
C3/2AE3:	A54E    	LDA $4E        ; Cursor row
C3/2AE5:	855F    	STA $5F        ; Save for revert
C3/2AE7:	A906    	LDA #$06       ; Main cursor: Off
C3/2AE9:	1446    	TRB $46        ; Set menu flag
C3/2AEB:	209F08  	JSR $089F      ; Create blinkers
C3/2AEE:	A93D    	LDA #$3D       ; C3/2D78
C3/2AF0:	8526    	STA $26        ; Next: Target all
C3/2AF2:	60      	RTS

Fork: Handle A
C3/2AF3:	A508    	LDA $08        ; No-autofire keys
C3/2AF5:	8980    	BIT #$80       ; Pushing A?
C3/2AF7:	F003    	BEQ $2AFC      ; Branch if not
C3/2AF9:	4C0C2B  	JMP $2B0C      ; Handle spell

Fork: Handle B
C3/2AFC:	A509    	LDA $09        ; No-autofire keys
C3/2AFE:	8980    	BIT #$80       ; Pushing B?
C3/2B00:	F009    	BEQ $2B0B      ; Exit if not
C3/2B02:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/2B05:	A93C    	LDA #$3C       ; C3/2D1C
C3/2B07:	8527    	STA $27        ; Queue Magic menu
C3/2B09:	6426    	STZ $26        ; Next: Fade-out
C3/2B0B:	60      	RTS

Handle spell usage on single target
C3/2B0C:	649C    	STZ $9C        ; Halve HP gain: N
C3/2B0E:	20CC2C  	JSR $2CCC      ; Get LV, Mag.Pwr
C3/2B11:	200B2D  	JSR $2D0B      ; Target's address
C3/2B14:	20142C  	JSR $2C14      ; Valid target?
C3/2B17:	9019    	BCC $2B32      ; Fail if not
C3/2B19:	20EA2C  	JSR $2CEA      ; Lower caster's MP
C3/2B1C:	20E50E  	JSR $0EE5      ; Play heal sound
C3/2B1F:	200B2D  	JSR $2D0B      ; Target's address
C3/2B22:	B91400  	LDA $0014,Y    ; Status LB
C3/2B25:	85F8    	STA $F8        ; Set as target's
C3/2B27:	B91500  	LDA $0015,Y    ; Status HB
C3/2B2A:	85FB    	STA $FB        ; Set as target's
C3/2B2C:	20392B  	JSR $2B39      ; Adjust HP, status
C3/2B2F:	4CDE2B  	JMP $2BDE      ; Redo GFX, test MP

Fork: Invalid target
C3/2B32:	20C00E  	JSR $0EC0      ; Play buzzer
C3/2B35:	205D30  	JSR $305D      ; Pixelate screen
C3/2B38:	60      	RTS

Adjust spell target's HP and status
C3/2B39:	B90B00  	LDA $000B,Y    ; Max HP LB
C3/2B3C:	8DB211  	STA $11B2      ; Set target's
C3/2B3F:	B90C00  	LDA $000C,Y    ; Max HP HB
C3/2B42:	8DB311  	STA $11B3      ; Set target's
C3/2B45:	5A      	PHY            ; Save index
C3/2B46:	20132D  	JSR $2D13      ; Spell number
C3/2B49:	A600    	LDX $00        ; Mode: Magic
C3/2B4B:	220900C2	JSL $C20009    ; Get gain/status
C3/2B4F:	7A      	PLY            ; Actor's address
C3/2B50:	A59C    	LDA $9C        ; One target?
C3/2B52:	F008    	BEQ $2B5C      ; Branch if so
C3/2B54:	C221    	REP #$21       ; 16-bit A; C-
C3/2B56:	ADB011  	LDA $11B0      ; HP gain
C3/2B59:	4A      	LSR A          ; Halve it
C3/2B5A:	8005    	BRA $2B61      ; Skip 2 lines
C3/2B5C:	C221    	REP #$21       ; 16-bit A; C-
C3/2B5E:	ADB011  	LDA $11B0      ; HP gain
C3/2B61:	790900  	ADC $0009,Y    ; Add actor HP
C3/2B64:	990900  	STA $0009,Y    ; Set actor HP
C3/2B67:	E220    	SEP #$20       ; 8-bit A
C3/2B69:	209A2B  	JSR $2B9A      ; Enforce max
C3/2B6C:	A5FC    	LDA $FC        ; Status LB
C3/2B6E:	991400  	STA $0014,Y    ; Set actor's
C3/2B71:	A5FF    	LDA $FF        ; Status HB
C3/2B73:	991500  	STA $0015,Y    ; Set actor's
C3/2B76:	A59C    	LDA $9C        ; One target?
C3/2B78:	D01F    	BNE $2B99      ; Exit if not
C3/2B7A:	7B      	TDC            ; Clear A
C3/2B7B:	A54B    	LDA $4B        ; Cursor slot
C3/2B7D:	AA      	TAX            ; Index it
C3/2B7E:	B569    	LDA $69,X      ; Actor's address
C3/2B80:	220600C2	JSL $C20006    ; Get gear data
C3/2B84:	7B      	TDC            ; Clear A
C3/2B85:	A54B    	LDA $4B        ; Cursor slot
C3/2B87:	0A      	ASL A          ; Double it
C3/2B88:	AA      	TAX            ; Index it
C3/2B89:	B46D    	LDY $6D,X      ; Actor's address
C3/2B8B:	8467    	STY $67        ; Memorize it
C3/2B8D:	ADD211  	LDA $11D2      ; Immunities
C3/2B90:	20EC91  	JSR $91EC      ; Deny ailments
C3/2B93:	ADD411  	LDA $11D4      ; Auto status
C3/2B96:	4CFB91  	JMP $91FB      ; Handle Float
C3/2B99:	60      	RTS

Keep HP from exceeding max HP, clear Carry if lower
C3/2B9A:	B90B00  	LDA $000B,Y    ; Max HP LB
C3/2B9D:	85F3    	STA $F3        ; Memorize it
C3/2B9F:	B90C00  	LDA $000C,Y    ; Max HP HB
C3/2BA2:	85F4    	STA $F4        ; Memorize it
C3/2BA4:	20650D  	JSR $0D65      ; Add gear bonus
C3/2BA7:	20920D  	JSR $0D92      ; Cap at 9999
C3/2BAA:	C220    	REP #$20       ; 16-bit A
C3/2BAC:	B90900  	LDA $0009,Y    ; Current HP
C3/2BAF:	C5F3    	CMP $F3        ; Under max?
C3/2BB1:	9006    	BCC $2BB9      ; Exit if so
C3/2BB3:	A5F3    	LDA $F3        ; Max HP
C3/2BB5:	990900  	STA $0009,Y    ; Set HP
C3/2BB8:	38      	SEC            ; ...
C3/2BB9:	E220    	SEP #$20       ; 8-bit A
C3/2BBB:	60      	RTS

Keep MP from exceeding max MP, clear Carry if lower
C3/2BBC:	B90F00  	LDA $000F,Y    ; Max MP LB
C3/2BBF:	85F3    	STA $F3        ; Memorize it
C3/2BC1:	B91000  	LDA $0010,Y    ; Max MP HB
C3/2BC4:	85F4    	STA $F4        ; Memorize it
C3/2BC6:	20650D  	JSR $0D65      ; Add gear bonus
C3/2BC9:	209F0D  	JSR $0D9F      ; Cap at 999
C3/2BCC:	C220    	REP #$20       ; 16-bit A
C3/2BCE:	B90D00  	LDA $000D,Y    ; Current MP
C3/2BD1:	C5F3    	CMP $F3        ; Under max?
C3/2BD3:	9006    	BCC $2BDB      ; Exit if so
C3/2BD5:	A5F3    	LDA $F3        ; Max MP
C3/2BD7:	990D00  	STA $000D,Y    ; Set MP
C3/2BDA:	38      	SEC            ; ...
C3/2BDB:	E220    	SEP #$20       ; 8-bit A
C3/2BDD:	60      	RTS

Redraw party after spell usage, exit menu if short on MP
C3/2BDE:	20012C  	JSR $2C01      ; Redraw party
C3/2BE1:	20DF2C  	JSR $2CDF      ; Check caster gear
C3/2BE4:	20032D  	JSR $2D03      ; Caster's address
C3/2BE7:	20132D  	JSR $2D13      ; Spell used
C3/2BEA:	200D51  	JSR $510D      ; Define cost
C3/2BED:	86E7    	STX $E7        ; Memorize it
C3/2BEF:	BE0D00  	LDX $000D,Y    ; Caster's MP
C3/2BF2:	E4E7    	CPX $E7        ; Can recast?
C3/2BF4:	B00A    	BCS $2C00      ; Exit if so
C3/2BF6:	A902    	LDA #$02       ; Main cursor: On
C3/2BF8:	8546    	STA $46        ; Bar/Blinker: Off
C3/2BFA:	A93C    	LDA #$3C       ; C3/2D1C
C3/2BFC:	8527    	STA $27        ; Queue Magic menu
C3/2BFE:	6426    	STZ $26        ; Next: Fade-out
C3/2C00:	60      	RTS

Redraw party after spell or item usage
C3/2C01:	A54B    	LDA $4B        ; Cursor slot, 0 if MT
C3/2C03:	859C    	STA $9C        ; Set portrait slot
C3/2C05:	20EE24  	JSR $24EE      ; Clear icons/portraits
C3/2C08:	20156A  	JSR $6A15      ; Clear names, stats
C3/2C0B:	209331  	JSR $3193      ; Redo stats/icons/faces
C3/2C0E:	20096C  	JSR $6C09      ; Load portrait colors
C3/2C11:	4CBF6E  	JMP $6EBF      ; Queue portrait upload

Establish whether spell target is valid
C3/2C14:	B91400  	LDA $0014,Y    ; Status
C3/2C17:	2980    	AND #$80       ; Wound?
C3/2C19:	D025    	BNE $2C40      ; Branch if so
C3/2C1B:	20132D  	JSR $2D13      ; Spell
C3/2C1E:	C92D    	CMP #$2D       ; Cure?
C3/2C20:	F054    	BEQ $2C76      ; Branch if so
C3/2C22:	C92E    	CMP #$2E       ; Cure 2?
C3/2C24:	F050    	BEQ $2C76      ; Branch if so
C3/2C26:	C92F    	CMP #$2F       ; Cure 3?
C3/2C28:	F04C    	BEQ $2C76      ; Branch if so
C3/2C2A:	C932    	CMP #$32       ; Antdot?
C3/2C2C:	F03F    	BEQ $2C6D      ; Branch if so
C3/2C2E:	C933    	CMP #$33       ; Remedy?
C3/2C30:	F032    	BEQ $2C64      ; Branch if so
C3/2C32:	C922    	CMP #$22       ; Float?
C3/2C34:	F017    	BEQ $2C4D      ; Branch if so
C3/2C36:	C923    	CMP #$23       ; Imp?
C3/2C38:	F04A    	BEQ $2C84      ; Succeed if so
C3/2C3A:	C92C    	CMP #$2C       ; Dispel?
C3/2C3C:	F018    	BEQ $2C56      ; Branch if so
C3/2C3E:	8042    	BRA $2C82      ; Make spell fail

Fork: Wound
C3/2C40:	20132D  	JSR $2D13      ; Spell
C3/2C43:	C930    	CMP #$30       ; Life?
C3/2C45:	F03D    	BEQ $2C84      ; Succeed if so
C3/2C47:	C931    	CMP #$31       ; Life 2?
C3/2C49:	F039    	BEQ $2C84      ; Succeed if so
C3/2C4B:	8035    	BRA $2C82      ; Make spell fail

Fork: Float
C3/2C4D:	B91500  	LDA $0015,Y    ; Status
C3/2C50:	2980    	AND #$80       ; Float?
C3/2C52:	D02E    	BNE $2C82      ; Fail if so
C3/2C54:	802E    	BRA $2C84      ; Make spell work

Fork: Dispel
C3/2C56:	B91400  	LDA $0014,Y    ; Status LB
C3/2C59:	297F    	AND #$7F       ; Ignore Wound...
C3/2C5B:	191500  	ORA $0015,Y    ; Add high byte
C3/2C5E:	2990    	AND #$90       ; Clear or Float?
C3/2C60:	F020    	BEQ $2C82      ; Fail if neither
C3/2C62:	8020    	BRA $2C84      ; Make spell work

Fork: Remedy
C3/2C64:	B91400  	LDA $0014,Y    ; Dark? Poison?
C3/2C67:	2945    	AND #$45       ; Or Petrify?
C3/2C69:	F017    	BEQ $2C82      ; Fail if none
C3/2C6B:	8017    	BRA $2C84      ; Make spell work

Fork: Antdot
C3/2C6D:	B91400  	LDA $0014,Y    ; Status
C3/2C70:	2904    	AND #$04       ; Poison?
C3/2C72:	F00E    	BEQ $2C82      ; Fail if not
C3/2C74:	800E    	BRA $2C84      ; Make spell work

Fork: Cure spells
C3/2C76:	B91400  	LDA $0014,Y    ; Zombie? KO?
C3/2C79:	29C2    	AND #$C2       ; Or Petrify?
C3/2C7B:	D005    	BNE $2C82      ; Fail if any
C3/2C7D:	209A2B  	JSR $2B9A      ; At full HP?
C3/2C80:	9002    	BCC $2C84      ; Succeed if not
C3/2C82:	18      	CLC            ; Make spell fail
C3/2C83:	60      	RTS            ; Exit
C3/2C84:	38      	SEC            ; Make spell work
C3/2C85:	60      	RTS

Handle spell usage on party
C3/2C86:	64AF    	STZ $AF        ; Valid target: N
C3/2C88:	A901    	LDA #$01       ; Half gain, etc.
C3/2C8A:	859C    	STA $9C        ; Set heal mode
C3/2C8C:	20CC2C  	JSR $2CCC      ; Get LV, Mag.Pwr
C3/2C8F:	7B      	TDC            ; Member: 1st
C3/2C90:	48      	PHA            ; Save member
C3/2C91:	0A      	ASL A          ; Double it
C3/2C92:	AA      	TAX            ; Index it
C3/2C93:	B46D    	LDY $6D,X      ; Actor's address
C3/2C95:	F021    	BEQ $2CB8      ; Skip if nobody
C3/2C97:	20142C  	JSR $2C14      ; Valid target?
C3/2C9A:	901C    	BCC $2CB8      ; Skip if not
C3/2C9C:	B91400  	LDA $0014,Y    ; Status LB
C3/2C9F:	85F8    	STA $F8        ; Set target's
C3/2CA1:	B91500  	LDA $0015,Y    ; Status HB
C3/2CA4:	85FB    	STA $FB        ; Set target's
C3/2CA6:	20392B  	JSR $2B39      ; Adjust HP, status
C3/2CA9:	20CC2C  	JSR $2CCC      ; Get LV, Mag.Pwr
C3/2CAC:	A5AF    	LDA $AF        ; 1st valid target?
C3/2CAE:	D008    	BNE $2CB8      ; Branch if not
C3/2CB0:	20E50E  	JSR $0EE5      ; Play heal sound
C3/2CB3:	20EA2C  	JSR $2CEA      ; Lower caster's MP
C3/2CB6:	E6AF    	INC $AF        ; Valid target: Y
C3/2CB8:	7B      	TDC            ; Clear A
C3/2CB9:	68      	PLA            ; Member slot
C3/2CBA:	1A      	INC A          ; Member slot +1
C3/2CBB:	C904    	CMP #$04       ; Done all 4?
C3/2CBD:	D0D1    	BNE $2C90      ; Loop if not
C3/2CBF:	A5AF    	LDA $AF        ; Is any valid?
C3/2CC1:	D006    	BNE $2CC9      ; Branch if so
C3/2CC3:	20C00E  	JSR $0EC0      ; Play buzzer
C3/2CC6:	205D30  	JSR $305D      ; Pixelate screen
C3/2CC9:	4CDE2B  	JMP $2BDE      ; Redo GFX, test MP

Load caster's Mag.Pwr and level (for C2/0009)
C3/2CCC:	20DF2C  	JSR $2CDF      ; Define stats
C3/2CCF:	ADA011  	LDA $11A0      ; Mag.Pwr
C3/2CD2:	8DAE11  	STA $11AE      ; Memorize it
C3/2CD5:	20032D  	JSR $2D03      ; Actor's address
C3/2CD8:	B90800  	LDA $0008,Y    ; Level
C3/2CDB:	8DAF11  	STA $11AF      ; Memorize it
C3/2CDE:	60      	RTS

Load member's stats and properties with gear
C3/2CDF:	7B      	TDC            ; Clear A
C3/2CE0:	A528    	LDA $28        ; Member slot
C3/2CE2:	AA      	TAX            ; Index it
C3/2CE3:	B569    	LDA $69,X      ; Actor
C3/2CE5:	220600C2	JSL $C20006    ; Load data
C3/2CE9:	60      	RTS

Decrease caster's MP
C3/2CEA:	20132D  	JSR $2D13      ; Spell
C3/2CED:	200D51  	JSR $510D      ; Define cost
C3/2CF0:	86E7    	STX $E7        ; Memorize it
C3/2CF2:	20032D  	JSR $2D03      ; Define Y
C3/2CF5:	C220    	REP #$20       ; 16-bit A
C3/2CF7:	B90D00  	LDA $000D,Y    ; Actor's MP
C3/2CFA:	38      	SEC            ; Prepare SBC
C3/2CFB:	E5E7    	SBC $E7        ; Subtract cost
C3/2CFD:	990D00  	STA $000D,Y    ; Save changes
C3/2D00:	E220    	SEP #$20       ; 8-bit A
C3/2D02:	60      	RTS

Get caster's SRAM block address
C3/2D03:	7B      	TDC            ; Clear A
C3/2D04:	A528    	LDA $28        ; Member slot
C3/2D06:	0A      	ASL A          ; Double it
C3/2D07:	AA      	TAX            ; Index it
C3/2D08:	B46D    	LDY $6D,X      ; SRAM address
C3/2D0A:	60      	RTS

Get target's SRAM block address
C3/2D0B:	7B      	TDC            ; Clear A
C3/2D0C:	A54B    	LDA $4B        ; Cursor slot
C3/2D0E:	0A      	ASL A          ; Double it
C3/2D0F:	AA      	TAX            ; Index it
C3/2D10:	B46D    	LDY $6D,X      ; SRAM address
C3/2D12:	60      	RTS

Get selected spell
C3/2D13:	7B      	TDC            ; Clear A
C3/2D14:	A599    	LDA $99        ; Spell slot
C3/2D16:	AA      	TAX            ; Index it
C3/2D17:	BF899D7E	LDA $7E9D89,X  ; Spell
C3/2D1B:	60      	RTS

3C: Return to Magic menu
C3/2D1C:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/2D1F:	20086A  	JSR $6A08      ; Set Win1 bounds
C3/2D22:	A942    	LDA #$42       ; Allow back row
C3/2D24:	1445    	TRB $45        ; And cursor memory
C3/2D26:	644A    	STZ $4A        ; List scroll: 0
C3/2D28:	6449    	STZ $49        ; Top BG1 WR row: 1
C3/2D2A:	20BC4D  	JSR $4DBC      ; Set to shift text
C3/2D2D:	20804C  	JSR $4C80      ; Draw menu, etc.
C3/2D30:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/2D33:	203021  	JSR $2130      ; Create scrollbar
C3/2D36:	20824B  	JSR $4B82      ; Load navig data
C3/2D39:	A58E    	LDA $8E        ; Old cursor column
C3/2D3B:	854D    	STA $4D        ; Set onscreen col
C3/2D3D:	A48E    	LDY $8E        ; Old cursor loc
C3/2D3F:	844F    	STY $4F        ; Set as current
C3/2D41:	A590    	LDA $90        ; Old scroll pos
C3/2D43:	854A    	STA $4A        ; Set as current
C3/2D45:	A54A    	LDA $4A        ; ...
C3/2D47:	85E0    	STA $E0        ; Memorize it...
C3/2D49:	A550    	LDA $50        ; List row
C3/2D4B:	38      	SEC            ; Prepare SBC
C3/2D4C:	E5E0    	SBC $E0        ; Sub scroll pos
C3/2D4E:	854E    	STA $4E        ; Set cursor row
C3/2D50:	208B4B  	JSR $4B8B      ; Relocate cursor
C3/2D53:	205821  	JSR $2158      ; Draw spells, etc.
C3/2D56:	20C651  	JSR $51C6      ; Draw MP cost
C3/2D59:	206E0E  	JSR $0E6E      ; Upload BG3 A+B
C3/2D5C:	206813  	JSR $1368      ; Refresh screen
C3/2D5F:	A400    	LDY $00        ; X: 0
C3/2D61:	8435    	STY $35        ; Set BG1 X-Pos
C3/2D63:	20991B  	JSR $1B99      ; Queue desc anim
C3/2D66:	A910    	LDA #$10       ; Reset/Stop desc
C3/2D68:	0445    	TSB $45        ; Set menu flag
C3/2D6A:	20FD0E  	JSR $0EFD      ; Queue lists upload
C3/2D6D:	A91A    	LDA #$1A       ; C3/27E2
C3/2D6F:	8527    	STA $27        ; Queue Magic menu
C3/2D71:	A901    	LDA #$01       ; C3/1D7E
C3/2D73:	8526    	STA $26        ; Next: Fade-in
C3/2D75:	4C4135  	JMP $3541      ; BRT:1 + NMI

3D: Handle multitarget spell
C3/2D78:	A508    	LDA $08        ; No-autofire keys
C3/2D7A:	8910    	BIT #$10       ; Pushing R?
C3/2D7C:	D012    	BNE $2D90      ; Branch if so
C3/2D7E:	A508    	LDA $08        ; ...
C3/2D80:	8920    	BIT #$20       ; Pushing L?
C3/2D82:	D00C    	BNE $2D90      ; Branch if so
C3/2D84:	A509    	LDA $09        ; No-autofire keys
C3/2D86:	8901    	BIT #$01       ; Pushing right?
C3/2D88:	D006    	BNE $2D90      ; Branch if so
C3/2D8A:	A509    	LDA $09        ; ...
C3/2D8C:	8902    	BIT #$02       ; Pushing left?
C3/2D8E:	F00B    	BEQ $2D9B      ; Branch if not
C3/2D90:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/2D93:	20B72D  	JSR $2DB7      ; Swap cursors
C3/2D96:	A93B    	LDA #$3B       ; C3/2AAE
C3/2D98:	8526    	STA $26        ; Next: One target
C3/2D9A:	60      	RTS

Fork: Handle A
C3/2D9B:	A508    	LDA $08        ; No-autofire keys
C3/2D9D:	8980    	BIT #$80       ; Pushing A?
C3/2D9F:	F003    	BEQ $2DA4      ; Branch if not
C3/2DA1:	4C862C  	JMP $2C86      ; Handle spell

Fork: Handle B
C3/2DA4:	A509    	LDA $09        ; No-autofire keys
C3/2DA6:	8980    	BIT #$80       ; Pushing B?
C3/2DA8:	F00C    	BEQ $2DB6      ; Exit if not
C3/2DAA:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/2DAD:	20B72D  	JSR $2DB7      ; Swap cursors
C3/2DB0:	A93C    	LDA #$3C       ; C3/2D1C
C3/2DB2:	8527    	STA $27        ; Queue Magic menu
C3/2DB4:	6426    	STZ $26        ; Next: Fade-out
C3/2DB6:	60      	RTS

Revert to a single target for spell
C3/2DB7:	20982F  	JSR $2F98      ; Preload nav data
C3/2DBA:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/2DBD:	A900    	LDA #$00       ; Min slot: 0
C3/2DBF:	A0C02F  	LDY #$2FC0     ; C3/2FC0
C3/2DC2:	207311  	JSR $1173      ; Queue D-Pad fn
C3/2DC5:	20B011  	JSR $11B0      ; Run anim queue
C3/2DC8:	A55F    	LDA $5F        ; Old cursor row
C3/2DCA:	854E    	STA $4E        ; Set as current
C3/2DCC:	A908    	LDA #$08       ; Blinkers: Off
C3/2DCE:	1446    	TRB $46        ; Set menu flag
C3/2DD0:	60      	RTS

Swap actor info for switched members
C3/2DD1:	7B      	TDC            ; Clear A
C3/2DD2:	A528    	LDA $28        ; Chosen slot A
C3/2DD4:	AA      	TAX            ; Index it
C3/2DD5:	A54B    	LDA $4B        ; Chosen slot B
C3/2DD7:	A8      	TAY            ; Index it
C3/2DD8:	B575    	LDA $75,X      ; A's party info
C3/2DDA:	85E0    	STA $E0        ; Memorize it
C3/2DDC:	B97500  	LDA $0075,Y    ; B's party info
C3/2DDF:	9575    	STA $75,X      ; Set as A's
C3/2DE1:	A5E0    	LDA $E0        ; A's party info
C3/2DE3:	997500  	STA $0075,Y    ; Set as B's
C3/2DE6:	B569    	LDA $69,X      ; A's actor ID
C3/2DE8:	85E0    	STA $E0        ; Memorize it
C3/2DEA:	B96900  	LDA $0069,Y    ; B's actor ID
C3/2DED:	9569    	STA $69,X      ; Set as A's
C3/2DEF:	A5E0    	LDA $E0        ; A's actor ID
C3/2DF1:	996900  	STA $0069,Y    ; Set as B's
C3/2DF4:	7B      	TDC            ; Clear A
C3/2DF5:	A528    	LDA $28        ; Chosen slot A
C3/2DF7:	0A      	ASL A          ; Double it
C3/2DF8:	AA      	TAX            ; Index it
C3/2DF9:	A54B    	LDA $4B        ; Chosen slot B
C3/2DFB:	0A      	ASL A          ; Double it
C3/2DFC:	A8      	TAY            ; Index it
C3/2DFD:	C220    	REP #$20       ; 16-bit A
C3/2DFF:	B56D    	LDA $6D,X      ; A's data adr
C3/2E01:	85E7    	STA $E7        ; Memorize it
C3/2E03:	B96D00  	LDA $006D,Y    ; B's data adr
C3/2E06:	956D    	STA $6D,X      ; Set as A's
C3/2E08:	A5E7    	LDA $E7        ; A's data adr
C3/2E0A:	996D00  	STA $006D,Y    ; Set as B's
C3/2E0D:	E220    	SEP #$20       ; 8-bit A
C3/2E0F:	60      	RTS

Toggle member's row, set to shift portrait
C3/2E10:	7B      	TDC            ; Clear A
C3/2E11:	A528    	LDA $28        ; Member slot
C3/2E13:	AA      	TAX            ; Index it
C3/2E14:	B575    	LDA $75,X      ; Party info
C3/2E16:	85E0    	STA $E0        ; Memorize it
C3/2E18:	B560    	LDA $60,X      ; Queue index
C3/2E1A:	AA      	TAX            ; Index it
C3/2E1B:	A5E0    	LDA $E0        ; Party info
C3/2E1D:	8920    	BIT #$20       ; Front row?
C3/2E1F:	F008    	BEQ $2E29      ; Branch if so
C3/2E21:	A920    	LDA #$20       ; Row: Front
C3/2E23:	14E0    	TRB $E0        ; Add to info
C3/2E25:	A903    	LDA #$03       ; Shift: Right
C3/2E27:	8006    	BRA $2E2F      ; Skip 3 lines
C3/2E29:	A920    	LDA #$20       ; Row: Back
C3/2E2B:	04E0    	TSB $E0        ; Add to info
C3/2E2D:	A902    	LDA #$02       ; Shift: Left
C3/2E2F:	9F49367E	STA $7E3649,X  ; Set anim mode
C3/2E33:	7B      	TDC            ; ...
C3/2E34:	A528    	LDA $28        ; Member slot
C3/2E36:	AA      	TAX            ; Index it
C3/2E37:	A5E0    	LDA $E0        ; Party info
C3/2E39:	9575    	STA $75,X      ; Set member's
C3/2E3B:	60      	RTS

Set to delete all portraits
C3/2E3C:	7B      	TDC            ; Clear A
C3/2E3D:	A560    	LDA $60        ; Queue index A
C3/2E3F:	AA      	TAX            ; Index it
C3/2E40:	A9FF    	LDA #$FF       ; Null value
C3/2E42:	9FC9357E	STA $7E35C9,X  ; Face A: Off
C3/2E46:	A561    	LDA $61        ; Queue index B
C3/2E48:	AA      	TAX            ; Index it
C3/2E49:	A9FF    	LDA #$FF       ; Null value
C3/2E4B:	9FC9357E	STA $7E35C9,X  ; Face B: Off
C3/2E4F:	A562    	LDA $62        ; Queue index C
C3/2E51:	AA      	TAX            ; Index it
C3/2E52:	A9FF    	LDA #$FF       ; Null value
C3/2E54:	9FC9357E	STA $7E35C9,X  ; Face C: Off
C3/2E58:	A563    	LDA $63        ; Queue index D
C3/2E5A:	AA      	TAX            ; Index it
C3/2E5B:	A9FF    	LDA #$FF       ; Null value
C3/2E5D:	9FC9357E	STA $7E35C9,X  ; Face D: Off
C3/2E61:	60      	RTS

Handle selection in main menu list
C3/2E62:	7B      	TDC            ; Clear A
C3/2E63:	A54B    	LDA $4B        ; Chosen menu
C3/2E65:	8525    	STA $25        ; Set submenu
C3/2E67:	0A      	ASL A          ; Double it
C3/2E68:	AA      	TAX            ; Index it
C3/2E69:	7C6C2E  	JMP ($2E6C,X)  ; Handle choice

Jump table for the above
C3/2E6C:	862E    	; Item
C3/2E6E:	902E    	; Skills
C3/2E70:	902E    	; Equip
C3/2E72:	902E    	; Relic
C3/2E74:	902E    	; Status
C3/2E76:	7A2E    	; Config
C3/2E78:	AA2E    	; Save

Invoke Config menu
C3/2E7A:	20B20E  	JSR $0EB2      ; Sound: Click
C3/2E7D:	645F    	STZ $5F        ; Cursor: Bat.Mode
C3/2E7F:	6426    	STZ $26        ; Next: Fade-out
C3/2E81:	A90D    	LDA #$0D       ; C3/1C7D
C3/2E83:	8527    	STA $27        ; Queue Config
C3/2E85:	60      	RTS

Invoke Item menu
C3/2E86:	20B20E  	JSR $0EB2      ; Sound: Click
C3/2E89:	6426    	STZ $26        ; Next: Fade-out
C3/2E8B:	A907    	LDA #$07       ; C3/1AD6
C3/2E8D:	8527    	STA $27        ; Queue Item menu
C3/2E8F:	60      	RTS

Initialize portrait targeting with main menu command
C3/2E90:	20B20E  	JSR $0EB2      ; Sound: Click
C3/2E93:	A902    	LDA #$02       ; List cursor: Off
C3/2E95:	1446    	TRB $46        ; Set menu flag
C3/2E97:	20982F  	JSR $2F98      ; Preload nav data
C3/2E9A:	A900    	LDA #$00       ; Min slot: 0
C3/2E9C:	A0C02F  	LDY #$2FC0     ; C3/2FC0
C3/2E9F:	207311  	JSR $1173      ; Queue D-Pad fn
C3/2EA2:	20062F  	JSR $2F06      ; Create blinker
C3/2EA5:	A906    	LDA #$06       ; C3/1DE8
C3/2EA7:	8526    	STA $26        ; Next: Targeting
C3/2EA9:	60      	RTS

Invoke Save menu if allowed
C3/2EAA:	AD0102  	LDA $0201      ; Can save here?
C3/2EAD:	1010    	BPL $2EBF      ; Fail if not
C3/2EAF:	20B20E  	JSR $0EB2      ; Sound: Click
C3/2EB2:	6426    	STZ $26        ; Next: Fade-out
C3/2EB4:	A913    	LDA #$13       ; C3/1CA0
C3/2EB6:	8527    	STA $27        ; Queue Save menu
C3/2EB8:	859E    	STA $9E        ; Set root menu cmd
C3/2EBA:	A904    	LDA #$04       ; C3/1A8A
C3/2EBC:	859F    	STA $9F        ; Set main menu cmd
C3/2EBE:	60      	RTS            ; Exit
C3/2EBF:	20C00E  	JSR $0EC0      ; Play buzzer
C3/2EC2:	205D30  	JSR $305D      ; Pixelate screen
C3/2EC5:	60      	RTS

Initiate shifting to Order menu
C3/2EC6:	A902    	LDA #$02       ; List cursor: Off
C3/2EC8:	1446    	TRB $46        ; Set menu flag
C3/2ECA:	20982F  	JSR $2F98      ; Preload nav data
C3/2ECD:	A900    	LDA #$00       ; Min slot: 0
C3/2ECF:	A0C02F  	LDY #$2FC0     ; C3/2FC0
C3/2ED2:	207311  	JSR $1173      ; Queue D-Pad fn
C3/2ED5:	A906    	LDA #$06       ; Frames: 6
C3/2ED7:	8520    	STA $20        ; Set scroll timer
C3/2ED9:	A0F4FF  	LDY #$FFF4     ; Speed: -12
C3/2EDC:	849C    	STY $9C        ; Set scroll speed
C3/2EDE:	A905    	LDA #$05       ; Blinker: Off
C3/2EE0:	1446    	TRB $46        ; Order cursor: Off
C3/2EE2:	A90F    	LDA #$0F       ; C3/240C
C3/2EE4:	8527    	STA $27        ; Queue: Choice 1
C3/2EE6:	A965    	LDA #$65       ; C3/36E7
C3/2EE8:	8526    	STA $26        ; Next: Pan screen
C3/2EEA:	60      	RTS

Create blinking cursor for Espers menu
C3/2EEB:	A902    	LDA #$02       ; Min slot: 16
C3/2EED:	A0D108  	LDY #$08D1     ; C3/08D1
C3/2EF0:	207311  	JSR $1173      ; Queue OAM fn
C3/2EF3:	C220    	REP #$20       ; 16-bit A
C3/2EF5:	A93800  	LDA #$0038     ; X: 56
C3/2EF8:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/2EFC:	A93600  	LDA #$0036     ; Y: 54
C3/2EFF:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/2F03:	E220    	SEP #$20       ; 8-bit A
C3/2F05:	60      	RTS

Create blinking cursor to the right of main cursor
C3/2F06:	A902    	LDA #$02       ; Min slot: 16
C3/2F08:	A0FF07  	LDY #$07FF     ; C3/07FF
C3/2F0B:	207311  	JSR $1173      ; Queue OAM fn
C3/2F0E:	C220    	REP #$20       ; 16-bit A
C3/2F10:	A555    	LDA $55        ; Cursor's X
C3/2F12:	1A      	INC A          ; +1 px right
C3/2F13:	1A      	INC A          ; +1 px right
C3/2F14:	9FCA337E	STA $7E33CA,X  ; Set blinker X
C3/2F18:	A557    	LDA $57        ; Cursor's Y
C3/2F1A:	9F4A347E	STA $7E344A,X  ; Set blinker Y
C3/2F1E:	E220    	SEP #$20       ; 8-bit A
C3/2F20:	60      	RTS

Create blinking cursor to northeast of main cursor
C3/2F21:	A901    	LDA #$01       ; Min slot: 8
C3/2F23:	A0FF07  	LDY #$07FF     ; C3/07FF
C3/2F26:	207311  	JSR $1173      ; Queue OAM fn
C3/2F29:	C220    	REP #$20       ; 16-bit A
C3/2F2B:	A555    	LDA $55        ; Cursor's X
C3/2F2D:	18      	CLC            ; Prepare ADC
C3/2F2E:	690400  	ADC #$0004     ; +4 px right
C3/2F31:	9FCA337E	STA $7E33CA,X  ; Set blinker X
C3/2F35:	A557    	LDA $57        ; Cursor's Y
C3/2F37:	38      	SEC            ; Prepare SBC
C3/2F38:	E90400  	SBC #$0004     ; +4 px up
C3/2F3B:	9F4A347E	STA $7E344A,X  ; Set blinker Y
C3/2F3F:	E220    	SEP #$20       ; 8-bit A
C3/2F41:	60      	RTS

Update cursor position in main menu list
C3/2F42:	AA      	TAX            ; Index mode
C3/2F43:	7C462F  	JMP ($2F46,X)  ; Handle mode

Jump table for the above
C3/2F46:	4A2F    	; Initialize data
C3/2F48:	6B2F    	; Update position

Mode 0: Initialize data
C3/2F4A:	A62D    	LDX $2D        ; Queue index
C3/2F4C:	A902    	LDA #$02       ; Show cursor: Y
C3/2F4E:	0446    	TSB $46        ; Set menu flag
C3/2F50:	FE4936  	INC $3649,X    ; Mode +1
C3/2F53:	A0852F  	LDY #$2F85     ; C3/2F85
C3/2F56:	20FE05  	JSR $05FE      ; Load navig data
C3/2F59:	AD4E1D  	LDA $1D4E      ; Game options
C3/2F5C:	2940    	AND #$40       ; Cursor memory?
C3/2F5E:	F005    	BEQ $2F65      ; Branch if not
C3/2F60:	AC2B02  	LDY $022B      ; Former position
C3/2F63:	844D    	STY $4D        ; Set as current
C3/2F65:	A08A2F  	LDY #$2F8A     ; C3/2F8A
C3/2F68:	204006  	JSR $0640      ; Set cursor X/Y

Mode 1: Update position
C3/2F6B:	A546    	LDA $46        ; Menu flags
C3/2F6D:	8902    	BIT #$02       ; Delete cursor?
C3/2F6F:	F012    	BEQ $2F83      ; Dequeue if so
C3/2F71:	A62D    	LDX $2D        ; Queue index
C3/2F73:	202D07  	JSR $072D      ; Handle D-Pad
C3/2F76:	A08A2F  	LDY #$2F8A     ; C3/2F8A
C3/2F79:	204006  	JSR $0640      ; Set cursor X/Y
C3/2F7C:	A44D    	LDY $4D        ; Cursor position
C3/2F7E:	8C2B02  	STY $022B      ; To cursor memory
C3/2F81:	38      	SEC            ; Set to requeue
C3/2F82:	60      	RTS            ; Exit
C3/2F83:	18      	CLC            ; Set to dequeue
C3/2F84:	60      	RTS

Navigation data for main menu
C3/2F85:	80      	; Wraps vertically
C3/2F86:	00      	; Initial column
C3/2F87:	00      	; Initial row
C3/2F88:	01      	; 1 column
C3/2F89:	07      	; 7 rows

Cursor positions for main menu
C3/2F8A:	AF12    	; Item
C3/2F8C:	AF21    	; Skills
C3/2F8E:	AF30    	; Equip
C3/2F90:	AF3F    	; Relic
C3/2F92:	AF4E    	; Status
C3/2F94:	AF5D    	; Config
C3/2F96:	AF6C    	; Save

Preload nav data for portrait selection, disable empty slots
C3/2F98:	20B12F  	JSR $2FB1      ; Load navig data
C3/2F9B:	7B      	TDC            ; Clear A
C3/2F9C:	AA      	TAX            ; 1st: Member 1
C3/2F9D:	A8      	TAY            ; ...
C3/2F9E:	BD6900  	LDA $0069,X    ; Actor in slot
C3/2FA1:	1007    	BPL $2FAA      ; Skip if any
C3/2FA3:	DA      	PHX            ; Save slot
C3/2FA4:	8A      	TXA            ; Move it to A
C3/2FA5:	0A      	ASL A          ; Double it
C3/2FA6:	AA      	TAX            ; Reindex it
C3/2FA7:	7485    	STZ $85,X      ; Disable slot
C3/2FA9:	FA      	PLX            ; Member slot
C3/2FAA:	E8      	INX            ; Member slot +1
C3/2FAB:	E00400  	CPX #$0004     ; Done all 4?
C3/2FAE:	D0EE    	BNE $2F9E      ; Loop if not
C3/2FB0:	60      	RTS

Preload navigation data for portrait selection
C3/2FB1:	A600    	LDX $00        ; Index: 0
C3/2FB3:	BF4230C3	LDA $C33042,X  ; Navig data
C3/2FB7:	9580    	STA $80,X      ; Save in RAM
C3/2FB9:	E8      	INX            ; Index +1
C3/2FBA:	E00D00  	CPX #$000D     ; At C3/304F?
C3/2FBD:	D0F4    	BNE $2FB3      ; Loop if not
C3/2FBF:	60      	RTS

Update movable cursor's position for portrait selection
C3/2FC0:	AA      	TAX            ; Index mode
C3/2FC1:	7CC42F  	JMP ($2FC4,X)  ; Handle mode

Jump table for the above
C3/2FC4:	C82F    	; Initialize data
C3/2FC6:	1430    	; Update position

Mode 0: Initialize data
C3/2FC8:	A62D    	LDX $2D        ; Queue index
C3/2FC8:	A914    	LDA #$14       ; Main cursor: On
C3/2FCC:	0446    	TSB $46        ; Enable D-Pad
C3/2FCE:	FE4936  	INC $3649,X    ; Mode +1
C3/2FD1:	20F52F  	JSR $2FF5      ; Load navig data
C3/2FD4:	A545    	LDA $45        ; Menu flags
C3/2FD6:	8940    	BIT #$40       ; Skip cursor mem?
C3/2FD8:	D00C    	BNE $2FE6      ; Branch if so
C3/2FDA:	AD4E1D  	LDA $1D4E      ; Game options
C3/2FDD:	2940    	AND #$40       ; Cursor memory?
C3/2FDF:	F005    	BEQ $2FE6      ; Branch if not
C3/2FE1:	AC2D02  	LDY $022D      ; Former position
C3/2FE4:	844D    	STY $4D        ; Set as current
C3/2FE6:	200830  	JSR $3008      ; Relocate cursor
C3/2FE9:	A555    	LDA $55        ; On empty slot?
C3/2FEB:	D006    	BNE $2FF3      ; Exit if not
C3/2FED:	20F52F  	JSR $2FF5      ; Target leader
C3/2FF0:	200830  	JSR $3008      ; Relocate cursor
C3/2FF3:	38      	SEC            ; Set to requeue
C3/2FF4:	60      	RTS

Load custom nav data for portrait selection, target leader
C3/2FF5:	A08000  	LDY #$0080     ; ...
C3/2FF8:	20FE05  	JSR $05FE      ; ...
C3/2FFB:	A08000  	LDY #$0080     ; 00/0080
C3/2FFE:	A900    	LDA #$00       ; Bank: 00
C3/3000:	85ED    	STA $ED        ; Set source HB
C3/3002:	200206  	JSR $0602      ; Load navig data
C3/3005:	4C1E06  	JMP $061E      ; Target leader

Set portrait cursor's slot and base pixel position
C3/3008:	A08500  	LDY #$0085     ; 00/0085
C3/300B:	84E7    	STY $E7        ; Set src LBs
C3/300D:	A900    	LDA #$00       ; Bank: 00
C3/300F:	85E9    	STA $E9        ; Set src HB
C3/3011:	4C4306  	JMP $0643      ; Relocate cursor

Mode 1: Update position
C3/3014:	A545    	LDA $45        ; Menu flags
C3/3016:	8940    	BIT #$40       ; Skip cursor mem?
C3/3018:	D005    	BNE $301F      ; Branch if so
C3/301A:	A44D    	LDY $4D        ; Cursor position
C3/301C:	8C2D02  	STY $022D      ; To cursor memory
C3/301F:	A546    	LDA $46        ; Menu flags
C3/3021:	8904    	BIT #$04       ; Delete cursor?
C3/3023:	F01B    	BEQ $3040      ; Dequeue if so
C3/3025:	8910    	BIT #$10       ; Swapping chars?
C3/3027:	F015    	BEQ $303E      ; Exit if so
C3/3029:	A62D    	LDX $2D        ; Queue index
C3/302B:	202D07  	JSR $072D      ; Handle D-Pad
C3/302E:	A08500  	LDY #$0085     ; 00/0085
C3/3031:	84E7    	STY $E7        ; Set src LBs
C3/3033:	A900    	LDA #$00       ; Bank: 00
C3/3035:	85E9    	STA $E9        ; Set src HB
C3/3037:	204306  	JSR $0643      ; Relocate cursor
C3/303A:	A555    	LDA $55        ; On empty slot?
C3/303C:	F0ED    	BEQ $302B      ; Retarget if so
C3/303E:	38      	SEC            ; Set to requeue
C3/303F:	60      	RTS            ; Exit
C3/3040:	18      	CLC            ; Set to dequeue
C3/3041:	60      	RTS

Navigation data for portrait selection
C3/3042:	80      	; Wraps vertically
C3/3043:	00      	; Initial column
C3/3044:	00      	; Initial row
C3/3045:	01      	; 1 column
C3/3046:	04      	; 4 rows

Cursor positions for portrait selection
C3/3047:	0828    	; Member 1
C3/3049:	0858    	; Member 2
C3/304B:	0888    	; Member 3
C3/304D:	08B8    	; Member 4

Queue menu fade-out
C3/304F:	7B      	TDC            ; Min slot: 0
C3/3050:	A09F30  	LDY #$309F     ; C3/309F
C3/3053:	4C7311  	JMP $1173      ; Put in queue

Queue menu fade-in
C3/3056:	7B      	TDC            ; Min slot: 0
C3/3057:	A0CA30  	LDY #$30CA     ; C3/30CA
C3/305A:	4C7311  	JMP $1173      ; Put in queue

Queue mosaic effect
C3/305D:	7B      	TDC            ; Min slot: 0
C3/305E:	A06430  	LDY #$3064     ; C3/3064
C3/3061:	4C7311  	JMP $1173      ; Put in queue

Process queued mosaic effect
C3/3064:	AA      	TAX            ; Index mode
C3/3065:	7C6830  	JMP ($3068,X)  ; Handle mode

Jump table for the above
C3/3068:	6C30    	; Initialize mosaic
C3/306A:	7930    	; Sustain mosaic

Mode 0: Initialize mosaic
C3/306C:	A62D    	LDX $2D        ; Queue index
C3/306E:	FE4936  	INC $3649,X    ; Mode +1
C3/3071:	9ECA33  	STZ $33CA,X    ; 1st: C3/3097
C3/3074:	A908    	LDA #$08       ; Frames: 8
C3/3076:	9D4933  	STA $3349,X    ; Set timer

Mode 1: Sustain mosaic
C3/3079:	A62D    	LDX $2D        ; Queue index
C3/307B:	BD4933  	LDA $3349,X    ; Timer expired?
C3/307E:	F015    	BEQ $3095      ; Dequeue if so
C3/3080:	7B      	TDC            ; ...
C3/3081:	BDCA33  	LDA $33CA,X    ; Table index
C3/3084:	AA      	TAX            ; Index it
C3/3085:	BF9730C3	LDA $C33097,X  ; Parameters
C3/3089:	85B5    	STA $B5        ; Save in RAM
C3/308B:	A62D    	LDX $2D        ; Queue index
C3/308D:	FECA33  	INC $33CA,X    ; Table index +1
C3/3090:	DE4933  	DEC $3349,X    ; Timer -1
C3/3093:	38      	SEC            ; Set to requeue
C3/3094:	60      	RTS            ; Exit
C3/3095:	18      	CLC            ; Set to dequeue
C3/3096:	60      	RTS

Mosaic parameters
C3/3097:	17      	; Intensity 1 for BG1-BG3
C3/3098:	27      	; Intensity 2 for BG1-BG3
C3/3099:	37      	; Intensity 3 for BG1-BG3
C3/309A:	47      	; Intensity 4 for BG1-BG3
C3/309B:	37      	; Intensity 3 for BG1-BG3
C3/309C:	27      	; Intensity 2 for BG1-BG3
C3/309D:	17      	; Intensity 1 for BG1-BG3
C3/309E:	07      	; Intensity 0 for BG1-BG3

Process queued menu fade-out
C3/309F:	AA      	TAX            ; Index mode
C3/30A0:	7CA330  	JMP ($30A3,X)  ; Handle mode

Jump table for the above
C3/30A3:	A730    	; Initialize brightness
C3/30A5:	B130    	; Decrease brightness

Mode 0: Initialize brightness
C3/30A7:	A62D    	LDX $2D        ; Queue index
C3/30A9:	FE4936  	INC $3649,X    ; Mode +1
C3/30AC:	A90F    	LDA #$0F       ; BRT: 15 and ON
C3/30AE:	9DCA33  	STA $33CA,X    ; Set next BRT

Mode 1: Decrease brightness
C3/30B1:	A420    	LDY $20        ; Timer expired?
C3/30B3:	F00F    	BEQ $30C4      ; Finalize if so
C3/30B5:	A62D    	LDX $2D        ; Queue index
C3/30B7:	BDCA33  	LDA $33CA,X    ; Next brightness
C3/30BA:	8544    	STA $44        ; Set as current
C3/30BC:	DECA33  	DEC $33CA,X    ; Next BRT -1
C3/30BF:	DECA33  	DEC $33CA,X    ; Next BRT -1
C3/30C2:	38      	SEC            ; Set to requeue
C3/30C3:	60      	RTS            ; Exit
C3/30C4:	A901    	LDA #$01       ; BRT: 1 and ON
C3/30C6:	8544    	STA $44        ; Set brightness
C3/30C8:	18      	CLC            ; Set to dequeue
C3/30C9:	60      	RTS

Process queued menu fade-in
C3/30CA:	AA      	TAX            ; Index mode
C3/30CB:	7CCE30  	JMP ($30CE,X)  ; Handle mode

Jump table for the above
C3/30CE:	D230    	; Initialize brightness
C3/30D0:	DC30    	; Increase brightness

Mode 0: Initialize brightness
C3/30D2:	A62D    	LDX $2D        ; Queue index
C3/30D4:	FE4936  	INC $3649,X    ; Mode +1
C3/30D7:	A901    	LDA #$01       ; BRT: 1 and ON
C3/30D9:	9D4A34  	STA $344A,X    ; Set next BRT

Mode 1: Increase brightness
C3/30DC:	A420    	LDY $20        ; Timer expired?
C3/30DE:	F00F    	BEQ $30EF      ; Finalize if so
C3/30E0:	A62D    	LDX $2D        ; Queue index
C3/30E2:	BD4A34  	LDA $344A,X    ; Next brightness
C3/30E5:	8544    	STA $44        ; Set as current
C3/30E7:	FE4A34  	INC $344A,X    ; Next BRT +1
C3/30EA:	FE4A34  	INC $344A,X    ; Next BRT +1
C3/30ED:	38      	SEC            ; Set to requeue
C3/30EE:	60      	RTS            ; Exit
C3/30EF:	A90F    	LDA #$0F       ; BRT: 15 and ON
C3/30F1:	8544    	STA $44        ; Set brightness
C3/30F3:	18      	CLC            ; Set to dequeue
C3/30F4:	60      	RTS

Draw and upload main menu
C3/30F5:	20993F  	JSR $3F99      ; Apply user font
C3/30F8:	20286A  	JSR $6A28      ; Clear BG2 map A
C3/30FB:	202D6A  	JSR $6A2D      ; Clear BG2 map B
C3/30FE:	20196A  	JSR $6A19      ; Clear BG1 map B
C3/3101:	20416A  	JSR $6A41      ; Clear BG3 map B
C3/3104:	A0CF31  	LDY #$31CF     ; C3/31CF
C3/3107:	204103  	JSR $0341      ; Draw Order box A
C3/310A:	A0D331  	LDY #$31D3     ; C3/31D3
C3/310D:	204103  	JSR $0341      ; Draw Order box B
C3/3110:	A0C731  	LDY #$31C7     ; C3/31C7
C3/3113:	204103  	JSR $0341      ; Draw main window
C3/3116:	A0BB31  	LDY #$31BB     ; C3/31BB
C3/3119:	204103  	JSR $0341      ; Draw option box
C3/311C:	207031  	JSR $3170      ; Draw stats, etc.
C3/311F:	206C32  	JSR $326C      ; Draw time
C3/3122:	20F331  	JSR $31F3      ; Draw menu list
C3/3125:	4C9F31  	JMP $319F      ; Upload text maps

Draw and upload save confirmation menu
C3/3128:	20993F  	JSR $3F99      ; Apply user font
C3/312B:	20826E  	JSR $6E82      ; Load portraits
C3/312E:	20096C  	JSR $6C09      ; And their colors
C3/3131:	20A831  	JSR $31A8      ; Upload skin
C3/3134:	A0C731  	LDY #$31C7     ; C3/31C7
C3/3137:	204103  	JSR $0341      ; Draw main window
C3/313A:	A0CB31  	LDY #$31CB     ; C3/31CB
C3/313D:	204103  	JSR $0341      ; Draw Yes/No box
C3/3140:	207031  	JSR $3170      ; Draw stats, etc.
C3/3143:	209532  	JSR $3295      ; Draw time
C3/3146:	20D731  	JSR $31D7      ; Draw question
C3/3149:	4C9F31  	JMP $319F      ; Upload text maps

Draw and upload load confirmation menu
C3/314C:	20993F  	JSR $3F99      ; Apply user font
C3/314F:	20826E  	JSR $6E82      ; Load portraits
C3/3152:	20096C  	JSR $6C09      ; And their colors
C3/3155:	20A831  	JSR $31A8      ; Upload skin
C3/3158:	A0C731  	LDY #$31C7     ; C3/31C7
C3/315B:	204103  	JSR $0341      ; Draw main window
C3/315E:	A0CB31  	LDY #$31CB     ; C3/31CB
C3/3161:	204103  	JSR $0341      ; Draw Yes/No box
C3/3164:	207031  	JSR $3170      ; Draw stats, etc.
C3/3167:	209532  	JSR $3295      ; Draw time
C3/316A:	20E531  	JSR $31E5      ; Draw question
C3/316D:	4C9F31  	JMP $319F      ; Upload text maps

Draw elements shared by main menu and save file submenus
C3/3170:	7B      	TDC            ; Gradient set: 0
C3/3171:	221DCAD4	JSL $D4CA1D    ; Create gradient
C3/3175:	A0BF31  	LDY #$31BF     ; C3/31BF
C3/3178:	204103  	JSR $0341      ; Draw time window
C3/317B:	A0C331  	LDY #$31C3     ; C3/31C3
C3/317E:	204103  	JSR $0341      ; Draw steps window
C3/3181:	20520E  	JSR $0E52      ; Upload windows
C3/3184:	208A31  	JSR $318A      ; Draw party info
C3/3187:	4C2132  	JMP $3221      ; Draw game stats

Draw party info
C3/318A:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/318D:	203C6A  	JSR $6A3C      ; Clear BG3 map A
C3/3190:	20466A  	JSR $6A46      ; Clear BG3 map C
C3/3193:	20F132  	JSR $32F1      ; Handle member 1
C3/3196:	203D33  	JSR $333D      ; Handle member 2
C3/3199:	208933  	JSR $3389      ; Handle member 3
C3/319C:	4CD533  	JMP $33D5      ; Handle member 4

Upload text tilemaps for menu with portraits
C3/319F:	20280E  	JSR $0E28      ; Upload BG1 A+B
C3/31A2:	206E0E  	JSR $0E6E      ; Upload BG3 A+B
C3/31A5:	4C7C0E  	JMP $0E7C      ; Upload BG3 C+D

Upload skin for viewed save file
C3/31A8:	A566    	LDA $66        ; File viewed
C3/31AA:	C901    	CMP #$01       ; File 1?
C3/31AC:	F007    	BEQ $31B5      ; Branch if so
C3/31AE:	C902    	CMP #$02       ; File 2?
C3/31B0:	F006    	BEQ $31B8      ; Branch if so
C3/31B2:	4CD93A  	JMP $3AD9      ; Handle file 3
C3/31B5:	4CA13A  	JMP $3AA1      ; Handle file 1
C3/31B8:	4CBD3A  	JMP $3ABD      ; Handle file 2

Window layout for main menu and save file submenus
C3/31BB:	B758060D	; 08x15 at $58B7 (Options)
C3/31BF:	775C0602	; 08x04 at $5C77 (Time)
C3/31C3:	755D0705	; 09x07 at $5D75 (Steps)
C3/31C7:	8B581C18	; 30x26 at $588B (Party)
C3/31CB:	B558070A	; 09x12 at $58B5 (Yes/No)
C3/31CF:	B9600702	; 09x04 at $60B9 (Order; L part)
C3/31D3:	85580102	; 03x04 at $5885 (Order; R part)

Draw confirmation text for Save menu
C3/31D7:	A920    	LDA #$20       ; Palette 0
C3/31D9:	8529    	STA $29        ; Color: User's
C3/31DB:	A26537  	LDX #$3765     ; Text ptrs loc
C3/31DE:	A00A00  	LDY #$000A     ; Strings: 5
C3/31E1:	20BA69  	JSR $69BA      ; Draw text
C3/31E4:	60      	RTS

Draw confirmation text for Load menu
C3/31E5:	A920    	LDA #$20       ; Palette 0
C3/31E7:	8529    	STA $29        ; Color: User's
C3/31E9:	A25D37  	LDX #$375D     ; Text ptrs loc
C3/31EC:	A00800  	LDY #$0008     ; Strings: 4
C3/31EF:	20BA69  	JSR $69BA      ; Draw text
C3/31F2:	60      	RTS

Draw list of submenus in main menu
C3/31F3:	A920    	LDA #$20       ; Palette 0
C3/31F5:	8529    	STA $29        ; Color: User's
C3/31F7:	A22937  	LDX #$3729     ; Text ptrs loc
C3/31FA:	A00800  	LDY #$0008     ; Strings: 4
C3/31FD:	20BA69  	JSR $69BA      ; Do Item..Status
C3/3200:	A920    	LDA #$20       ; ...
C3/3202:	8529    	STA $29        ; ...
C3/3204:	A25937  	LDX #$3759     ; Text ptrs loc
C3/3207:	A00400  	LDY #$0004     ; Strings: 2
C3/320A:	20BA69  	JSR $69BA      ; Do Equip/Config
C3/320D:	AD0102  	LDA $0201      ; Can save here?
C3/3210:	1004    	BPL $3216      ; Branch if not
C3/3212:	A920    	LDA #$20       ; Color: User's
C3/3214:	8002    	BRA $3218      ; Skip a line
C3/3216:	A924    	LDA #$24       ; Color: Gray
C3/3218:	8529    	STA $29        ; Set palette
C3/321A:	A0FD37  	LDY #$37FD     ; Text pointer
C3/321D:	20F902  	JSR $02F9      ; Draw "Save"
C3/3220:	60      	RTS

Draw most text in small windows of main menu or save file submenu
C3/3221:	A920    	LDA #$20       ; Palette 0
C3/3223:	8529    	STA $29        ; Color: User's
C3/3225:	A00B38  	LDY #$380B     ; Text pointer
C3/3228:	20F902  	JSR $02F9      ; Draw ":"
C3/322B:	A92C    	LDA #$2C       ; Palette 3
C3/322D:	8529    	STA $29        ; Color: Blue
C3/322F:	A22337  	LDX #$3723     ; Text ptrs loc
C3/3232:	A00600  	LDY #$0006     ; Strings: 3
C3/3235:	20BA69  	JSR $69BA      ; Draw SE titles
C3/3238:	A01738  	LDY #$3817     ; Text pointer
C3/323B:	20F902  	JSR $02F9      ; Draw "Gp"
C3/323E:	20CE32  	JSR $32CE      ; Cap GP
C3/3241:	A920    	LDA #$20       ; Palette 0
C3/3243:	8529    	STA $29        ; Color: User's
C3/3245:	AC6618  	LDY $1866      ; Steps LBs
C3/3248:	84F1    	STY $F1        ; Memorize them
C3/324A:	AD6818  	LDA $1868      ; Steps HB
C3/324D:	85F3    	STA $F3        ; Memorize it
C3/324F:	208205  	JSR $0582      ; Turn into text
C3/3252:	A2F77D  	LDX #$7DF7     ; Text position
C3/3255:	20AC04  	JSR $04AC      ; Draw step count
C3/3258:	AC6018  	LDY $1860      ; Gold LBs
C3/325B:	84F1    	STY $F1        ; Memorize them
C3/325D:	AD6218  	LDA $1862      ; Gold HB
C3/3260:	85F3    	STA $F3        ; Memorize it
C3/3262:	208205  	JSR $0582      ; Turn into text
C3/3265:	A2B77E  	LDX #$7EB7     ; Text position
C3/3268:	20AC04  	JSR $04AC      ; Draw GP total
C3/326B:	60      	RTS

Draw time in main menu
C3/326C:	AD8811  	LDA $1188      ; Timer 0 flags
C3/326F:	8910    	BIT #$10       ; Override clock?
C3/3271:	F016    	BEQ $3289      ; Branch if not
C3/3273:	AC8911  	LDY $1189      ; Countdown timer
C3/3276:	20B232  	JSR $32B2      ; Divide by 60
C3/3279:	20B232  	JSR $32B2      ; Divide by 60
C3/327C:	A5E7    	LDA $E7        ; Minutes
C3/327E:	8D6318  	STA $1863      ; Set shown hours
C3/3281:	AD1642  	LDA $4216      ; Seconds
C3/3284:	8D6418  	STA $1864      ; Set shown mins
C3/3287:	800C    	BRA $3295      ; Draw time

Fork: Normal clock
C3/3289:	AC1B02  	LDY $021B      ; Hours, mins
C3/328C:	8C6318  	STY $1863      ; Save in SRAM
C3/328F:	AD1D02  	LDA $021D      ; Seconds
C3/3292:	8D6518  	STA $1865      ; Save in SRAM

Fork: Draw time
C3/3295:	A920    	LDA #$20       ; Palette 0
C3/3297:	8529    	STA $29        ; Color: User's
C3/3299:	AD6318  	LDA $1863      ; Shown hours
C3/329C:	20E004  	JSR $04E0      ; Turn into text
C3/329F:	A2FB7C  	LDX #$7CFB     ; Text position
C3/32A2:	20B604  	JSR $04B6      ; Draw 2 digits
C3/32A5:	AD6418  	LDA $1864      ; Shown minutes
C3/32A8:	20F904  	JSR $04F9      ; Turn into text
C3/32AB:	A2017D  	LDX #$7D01     ; Text position
C3/32AE:	20B604  	JSR $04B6      ; Draw 2 digits
C3/32B1:	60      	RTS

Divide countdown timer's value by 60
C3/32B2:	8C0442  	STY $4204      ; Set dividend
C3/32B5:	A93C    	LDA #$3C       ; 60
C3/32B7:	8D0642  	STA $4206      ; Set divisor
C3/32BA:	EA      	NOP
C3/32BB:	EA      	NOP
C3/32BC:	EA      	NOP
C3/32BD:	EA      	NOP
C3/32BE:	EA      	NOP
C3/32BF:	EA      	NOP
C3/32C0:	EA      	NOP
C3/32C1:	EA      	NOP
C3/32C2:	EA      	NOP
C3/32C3:	EA      	NOP
C3/32C4:	EA      	NOP
C3/32C5:	EA      	NOP
C3/32C6:	EA      	NOP
C3/32C7:	EA      	NOP
C3/32C8:	AC1442  	LDY $4214      ; Quotient
C3/32CB:	84E7    	STY $E7        ; Memorize it
C3/32CD:	60      	RTS

Enforce GP cap
C3/32CE:	A97F    	LDA #$7F       ; Cap LB
C3/32D0:	CD6018  	CMP $1860      ; C- if < GP LB
C3/32D3:	A996    	LDA #$96       ; Cap MB
C3/32D5:	ED6118  	SBC $1861      ; Deduct GP w/ C
C3/32D8:	A998    	LDA #$98       ; Cap HB
C3/32DA:	ED6218  	SBC $1862      ; Deduct GP w/ C
C3/32DD:	B00B    	BCS $32EA      ; Exit if < 10M
C3/32DF:	A07F96  	LDY #$967F     ; Cap LBs
C3/32E2:	8C6018  	STY $1860      ; Set gold LBs
C3/32E5:	A998    	LDA #$98       ; Cap HB
C3/32E7:	8D6218  	STA $1862      ; Set gold HB
C3/32EA:	60      	RTS

Hi-fork: Hide portrait
C3/32EB:	20220A  	JSR $0A22      ; Init portrait
C3/32EE:	4C1B34  	JMP $341B      ; Hide portrait

Draw info for member 1
C3/32F1:	A569    	LDA $69        ; Nobody here?
C3/32F3:	30F6    	BMI $32EB      ; Abort if so
C3/32F5:	A66D    	LDX $6D        ; Actor's address
C3/32F7:	8667    	STX $67        ; Memorize it
C3/32F9:	A924    	LDA #$24       ; Palette 1
C3/32FB:	8529    	STA $29        ; Color: Blue
C3/32FD:	A24137  	LDX #$3741     ; Text ptrs loc
C3/3300:	A00600  	LDY #$0006     ; Strings: 3
C3/3303:	20BA69  	JSR $69BA      ; Draw "LV/HP/MP"
C3/3306:	A02739  	LDY #$3927     ; Class/KO pos
C3/3309:	A27815  	LDX #$1578     ; Icon position
C3/330C:	6448    	STZ $48        ; Anim mode: 0
C3/330E:	202734  	JSR $3427      ; Display status
C3/3311:	A23137  	LDX #$3731     ; Text ptrs loc
C3/3314:	86F1    	STX $F1        ; ...
C3/3316:	A00400  	LDY #$0004     ; Strings: 2
C3/3319:	84EF    	STY $EF        ; ...
C3/331B:	20BA69  	JSR $69BA      ; Draw both "/"
C3/331E:	A01939  	LDY #$3919     ; Text position
C3/3321:	20CF34  	JSR $34CF      ; Draw actor name
C3/3324:	A22D33  	LDX #$332D     ; Coords tbl ptr
C3/3327:	206C0C  	JSR $0C6C      ; Draw LV, HP, MP
C3/332A:	4C220A  	JMP $0A22      ; Create portrait

Tilemap pointers for stats of member 1
C3/332D:	A739    	; Level
C3/332F:	E339    	; HP
C3/3331:	ED39    	; Max HP
C3/3333:	233A    	; MP
C3/3335:	2D3A    	; Max MP

Hi-fork: Hide portrait
C3/3337:	204B0A  	JSR $0A4B      ; Init portrait
C3/333A:	4C1B34  	JMP $341B      ; Hide portrait

Draw info for member 2
C3/333D:	A56A    	LDA $6A        ; Nobody here?
C3/333F:	30F6    	BMI $3337      ; Abort if so
C3/3341:	A66F    	LDX $6F        ; Actor's address
C3/3343:	8667    	STX $67        ; Memorize it
C3/3345:	A924    	LDA #$24       ; Palette 1
C3/3347:	8529    	STA $29        ; Color: Blue
C3/3349:	A24737  	LDX #$3747     ; Text ptrs loc
C3/334C:	A00600  	LDY #$0006     ; Strings: 3
C3/334F:	20BA69  	JSR $69BA      ; Draw "LV/HP/MP"
C3/3352:	A0A73A  	LDY #$3AA7     ; Class/KO pos
C3/3355:	A27845  	LDX #$4578     ; Icon position
C3/3358:	6448    	STZ $48        ; Anim mode: 0
C3/335A:	202734  	JSR $3427      ; Display status
C3/335D:	A23537  	LDX #$3735     ; Text ptrs loc
C3/3360:	86F1    	STX $F1        ; ...
C3/3362:	A00400  	LDY #$0004     ; Strings: 2
C3/3365:	84EF    	STY $EF        ; ...
C3/3367:	20BA69  	JSR $69BA      ; Draw both "/"
C3/336A:	A0993A  	LDY #$3A99     ; Text position
C3/336D:	20CF34  	JSR $34CF      ; Draw actor name
C3/3370:	A27933  	LDX #$3379     ; Coords tbl ptr
C3/3373:	206C0C  	JSR $0C6C      ; Draw LV, HP, MP
C3/3376:	4C4B0A  	JMP $0A4B      ; Create portrait

Tilemap pointers for stats of member 2
C3/3379:	273B    	; Level
C3/337B:	633B    	; HP
C3/337D:	6D3B    	; Max HP
C3/337F:	A33B    	; MP
C3/3381:	AD3B    	; Max MP

Hi-fork: Hide portrait
C3/3383:	20760A  	JSR $0A76      ; Init portrait
C3/3386:	4C1B34  	JMP $341B      ; Hide portrait

Draw info for member 3
C3/3389:	A56B    	LDA $6B        ; Nobody here?
C3/338B:	30F6    	BMI $3383      ; Abort if so
C3/338D:	A671    	LDX $71        ; Actor's address
C3/338F:	8667    	STX $67        ; Memorize it
C3/3391:	A924    	LDA #$24       ; Palette 1
C3/3393:	8529    	STA $29        ; Color: Blue
C3/3395:	A24D37  	LDX #$374D     ; Text ptrs loc
C3/3398:	A00600  	LDY #$0006     ; Strings: 3
C3/339B:	20BA69  	JSR $69BA      ; Draw "LV/HP/MP"
C3/339E:	A0273C  	LDY #$3C27     ; Class/KO pos
C3/33A1:	A27875  	LDX #$7578     ; Icon position
C3/33A4:	6448    	STZ $48        ; Anim mode: 0
C3/33A6:	202734  	JSR $3427      ; Display status
C3/33A9:	A23937  	LDX #$3739     ; Text ptrs loc
C3/33AC:	86F1    	STX $F1        ; ...
C3/33AE:	A00400  	LDY #$0004     ; Strings: 2
C3/33B1:	84EF    	STY $EF        ; ...
C3/33B3:	20BA69  	JSR $69BA      ; Draw both "/"
C3/33B6:	A0193C  	LDY #$3C19     ; Text position
C3/33B9:	20CF34  	JSR $34CF      ; Draw actor name
C3/33BC:	A2C533  	LDX #$33C5     ; Coords tbl ptr
C3/33BF:	206C0C  	JSR $0C6C      ; Draw LV, HP, MP
C3/33C2:	4C760A  	JMP $0A76      ; Create portrait

Tilemap pointers for stats of member 3
C3/33C5:	A73C    	; Level
C3/33C7:	E33C    	; HP
C3/33C9:	ED3C    	; Max HP
C3/33CB:	233D    	; MP
C3/33CD:	2D3D    	; Max MP

Hi-fork: Hide portrait
C3/33CF:	20A10A  	JSR $0AA1      ; Init portrait
C3/33D2:	4C1B34  	JMP $341B      ; Hide portrait

Draw info for member 4
C3/33D5:	A56C    	LDA $6C        ; Nobody here?
C3/33D7:	30F6    	BMI $33CF      ; Abort if so
C3/33D9:	A673    	LDX $73        ; Actor's address
C3/33DB:	8667    	STX $67        ; Memorize it
C3/33DD:	A924    	LDA #$24       ; Palette 1
C3/33DF:	8529    	STA $29        ; Color: Blue
C3/33E1:	A25337  	LDX #$3753     ; Text ptrs loc
C3/33E4:	A00600  	LDY #$0006     ; Strings: 3
C3/33E7:	20BA69  	JSR $69BA      ; Draw "LV/HP/MP"
C3/33EA:	A0A73D  	LDY #$3DA7     ; Class/KO pos
C3/33ED:	A278A5  	LDX #$A578     ; Icon position
C3/33F0:	6448    	STZ $48        ; Anim mode: 0
C3/33F2:	202734  	JSR $3427      ; Display status
C3/33F5:	A23D37  	LDX #$373D     ; Text ptrs loc
C3/33F8:	86F1    	STX $F1        ; ...
C3/33FA:	A00400  	LDY #$0004     ; Strings: 2
C3/33FD:	84EF    	STY $EF        ; ...
C3/33FF:	20BA69  	JSR $69BA      ; Draw both "/"
C3/3402:	A0993D  	LDY #$3D99     ; Text position
C3/3405:	20CF34  	JSR $34CF      ; Draw actor name
C3/3408:	A21134  	LDX #$3411     ; Coords tbl ptr
C3/340B:	206C0C  	JSR $0C6C      ; Draw LV, HP, MP
C3/340E:	4CA10A  	JMP $0AA1      ; Create portrait

Tilemap pointers for stats of member 4
C3/3411:	273E    	; Level
C3/3413:	633E    	; HP
C3/3415:	6D3E    	; Max HP
C3/3417:	A33E    	; MP
C3/3419:	AD3E    	; Max MP

Hide portrait for vacant member slot
C3/341B:	C220    	REP #$20       ; 16-bit A
C3/341D:	A9D800  	LDA #$00D8     ; Base Y: 216
C3/3420:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/3424:	E220    	SEP #$20       ; 8-bit A
C3/3426:	60      	RTS

Display actor's status (excludes Status menu)
C3/3427:	86E7    	STX $E7        ; Save icon pos
C3/3429:	201935  	JSR $3519      ; Set text pos
C3/342C:	B91400  	LDA $0014,Y    ; Wounded?
C3/342F:	307F    	BMI $34B0      ; Draw it if so
C3/3431:	2970    	AND #$70       ; Clear/Imp/Pet
C3/3433:	85E1    	STA $E1        ; Memorize them
C3/3435:	B91400  	LDA $0014,Y    ; Status LB
C3/3438:	2907    	AND #$07       ; Dark/Zom/Poison
C3/343A:	0A      	ASL A          ; Put in bits 1-3
C3/343B:	85E2    	STA $E2        ; Memorize them
C3/343D:	B91500  	LDA $0015,Y    ; Status HB
C3/3440:	2980    	AND #$80       ; Isolate Float
C3/3442:	05E1    	ORA $E1        ; Add Clear, etc.
C3/3444:	05E2    	ORA $E2        ; Add Dark, etc.
C3/3446:	85E1    	STA $E1        ; ...
C3/3448:	F05F    	BEQ $34A9      ; Exit if none
C3/344A:	64F1    	STZ $F1        ; Sprite index LB
C3/344C:	64F2    	STZ $F2        ; Sprite index HB
C3/344E:	A20700  	LDX #$0007     ; Status left: 7
C3/3451:	DA      	PHX            ; Save counter
C3/3452:	0A      	ASL A          ; Got current?
C3/3453:	9047    	BCC $349C      ; Skip if not
C3/3455:	48      	PHA            ; Save status
C3/3456:	A903    	LDA #$03       ; Min slot: 24
C3/3458:	A0427B  	LDY #$7B42     ; C3/7B42
C3/345B:	207311  	JSR $1173      ; Queue icon OAM
C3/345E:	A901    	LDA #$01       ; Pans with BG1
C3/3460:	9F4A367E	STA $7E364A,X  ; Set OBJ flags
C3/3464:	A548    	LDA $48        ; Anim mode
C3/3466:	9F49367E	STA $7E3649,X  ; Set icon's
C3/346A:	9B      	TXY            ; Queue index
C3/346B:	A6F1    	LDX $F1        ; Sprite index
C3/346D:	8B      	PHB            ; Save DB
C3/346E:	A97E    	LDA #$7E       ; Bank: 7E
C3/3470:	48      	PHA            ; Put on stack
C3/3471:	AB      	PLB            ; Set DB to 7E
C3/3472:	C220    	REP #$20       ; 16-bit A
C3/3474:	BF25ECD8	LDA $D8EC25,X  ; Anim table ptr
C3/3478:	99C932  	STA $32C9,Y    ; Set icon's
C3/347B:	E220    	SEP #$20       ; 8-bit A
C3/347D:	A5E7    	LDA $E7        ; X position
C3/347F:	99CA33  	STA $33CA,Y    ; Set icon's
C3/3482:	A5E8    	LDA $E8        ; Y position
C3/3484:	994A34  	STA $344A,Y    ; Set icon's
C3/3487:	7B      	TDC            ; Clear A
C3/3488:	99CB33  	STA $33CB,Y    ; No use...
C3/348B:	994B34  	STA $344B,Y    ; No use...
C3/348E:	A9D8    	LDA #$D8       ; Bank: D8
C3/3490:	99CA35  	STA $35CA,Y    ; Set ptr HB
C3/3493:	AB      	PLB            ; Restore DB
C3/3494:	18      	CLC            ; Prepare ADC
C3/3495:	A90A    	LDA #$0A       ; Modifier: 10
C3/3497:	65E7    	ADC $E7        ; Add current X
C3/3499:	85E7    	STA $E7        ; Set current X
C3/349B:	68      	PLA            ; Statuses
C3/349C:	E6F1    	INC $F1        ; Sprite index +1
C3/349E:	E6F1    	INC $F1        ; Sprite index +1
C3/34A0:	FA      	PLX            ; Statuses left
C3/34A1:	CA      	DEX            ; One less left
C3/34A2:	D0AD    	BNE $3451      ; Loop till last
C3/34A4:	A920    	LDA #$20       ; Palette 0
C3/34A6:	8529    	STA $29        ; Color: User's
C3/34A8:	60      	RTS            ; ^ For stats

Fork: Draw actor class (SFC)
C3/34A9:	A920    	LDA #$20       ; Palette 0
C3/34AB:	8529    	STA $29        ; Color: User's
C3/34AD:	4CE534  	JMP $34E5      ; RTS...

Fork: Draw "Wounded"
C3/34B0:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/34B3:	8E8121  	STX $2181      ; Set WRAM LBs
C3/34B6:	A600    	LDX $00        ; Index: 0
C3/34B8:	BF1B37C3	LDA $C3371B,X  ; Letter
C3/34BC:	8D8021  	STA $2180      ; Add to string
C3/34BF:	E8      	INX            ; Point to next
C3/34C0:	E00800  	CPX #$0008     ; Copied 8?
C3/34C3:	D0F3    	BNE $34B8      ; Loop if not
C3/34C5:	9C8021  	STZ $2180      ; End string
C3/34C8:	A928    	LDA #$28       ; Palette 2
C3/34CA:	8529    	STA $29        ; Color: Gray
C3/34CC:	4CD97F  	JMP $7FD9      ; Draw string

Draw actor name
C3/34CF:	201935  	JSR $3519      ; Set pos/WRAM/Y
C3/34D2:	A20600  	LDX #$0006     ; Letters: 6
C3/34D5:	B90200  	LDA $0002,Y    ; Letter
C3/34D8:	8D8021  	STA $2180      ; Add to string
C3/34DB:	C8      	INY            ; Point to next
C3/34DC:	CA      	DEX            ; One less left
C3/34DD:	D0F6    	BNE $34D5      ; Loop till last
C3/34DF:	9C8021  	STZ $2180      ; End string
C3/34E2:	4CD97F  	JMP $7FD9      ; Draw string

Draw actor class (SFC)
C3/34E5:	60      	RTS            ; ...

Draw equipped esper
C3/34E6:	201935  	JSR $3519      ; Set pos/WRAM/Y
C3/34E9:	B91E00  	LDA $001E,Y    ; Actor's esper
C3/34EC:	C9FF    	CMP #$FF       ; None?
C3/34EE:	F018    	BEQ $3508      ; Blank if so
C3/34F0:	0A      	ASL A          ; x2
C3/34F1:	0A      	ASL A          ; x4
C3/34F2:	0A      	ASL A          ; x8
C3/34F3:	AA      	TAX            ; Index it
C3/34F4:	A00800  	LDY #$0008     ; Letters: 8
C3/34F7:	BFE1F6E6	LDA $E6F6E1,X  ; Letter
C3/34FB:	8D8021  	STA $2180      ; Add to string
C3/34FE:	E8      	INX            ; Point to next
C3/34FF:	88      	DEY            ; One less left
C3/3500:	D0F5    	BNE $34F7      ; Loop till last
C3/3502:	9C8021  	STZ $2180      ; End string
C3/3505:	4CD97F  	JMP $7FD9      ; Draw string

Fork: Blank esper name
C3/3508:	A00800  	LDY #$0008     ; Letters: 8
C3/350B:	A9FF    	LDA #$FF       ; Space char
C3/350D:	8D8021  	STA $2180      ; Add to string
C3/3510:	88      	DEY            ; One less left
C3/3511:	D0FA    	BNE $350D      ; Loop till last
C3/3513:	9C8021  	STZ $2180      ; End string
C3/3516:	4CD97F  	JMP $7FD9      ; Draw string

Prepare name drawing
C3/3519:	A2899E  	LDX #$9E89     ; 7E/9E89
C3/351C:	8E8121  	STX $2181      ; Set WRAM LBs
C3/351F:	C220    	REP #$20       ; 16-bit A
C3/3521:	98      	TYA            ; Tilemap ptr
C3/3522:	E220    	SEP #$20       ; 8-bit A
C3/3524:	8D8021  	STA $2180      ; Set position LB
C3/3527:	EB      	XBA            ; Switch to HB
C3/3528:	8D8021  	STA $2180      ; Set position HB
C3/352B:	7B      	TDC            ; Clear A
C3/352C:	A467    	LDY $67        ; Actor address
C3/352E:	60      	RTS

Reset OAM and anim queue; disable screen, interrupts, pad, HDMA
C3/352F:	A980    	LDA #$80       ; BRT:0 and OFF
C3/3531:	8D0021  	STA $2100      ; Disable screen
C3/3534:	201411  	JSR $1114      ; Reset OAM, queue
C3/3537:	9C0042  	STZ $4200      ; Disable INT, pad
C3/353A:	9C0B42  	STZ $420B      ; Disable DMA...
C3/353D:	9C0C42  	STZ $420C      ; Disable HDMA
C3/3540:	60      	RTS

Prepare fade-in
C3/3541:	A901    	LDA #$01       ; BRT: 1 and ON
C3/3543:	8544    	STA $44        ; Set brightness
C3/3545:	4C6813  	JMP $1368      ; Refresh screen

Redraw time in main menu
C3/3548:	20390F  	JSR $0F39      ; Queue BG3 upload
C3/354B:	4C6C32  	JMP $326C      ; Draw time

Queue main screen designation HDMA for main menu
C3/354E:	A600    	LDX $00        ; Index: 0
C3/3550:	A917    	LDA #$17       ; BG1-3, sprites
C3/3552:	9F099A7E	STA $7E9A09,X  ; Set MS desig.
C3/3556:	E8      	INX            ; Index +1
C3/3557:	E0DF00  	CPX #$00DF     ; At 7E/9AE8?
C3/355A:	D0F6    	BNE $3552      ; Loop if not
C3/355C:	A940    	LDA #$40       ; 1Rx1B via ptrs
C3/355E:	8D6043  	STA $4360      ; Set DMA mode
C3/3561:	A92C    	LDA #$2C       ; $212C
C3/3563:	8D6143  	STA $4361      ; To MS desig.
C3/3566:	A07B35  	LDY #$357B     ; C3/357B
C3/3569:	8C6243  	STY $4362      ; Set src LBs
C3/356C:	A9C3    	LDA #$C3       ; Bank: C3
C3/356E:	8D6443  	STA $4364      ; Set src HB
C3/3571:	A97E    	LDA #$7E       ; Bank: 7E
C3/3573:	8D6743  	STA $4367      ; Set indir HB
C3/3576:	A940    	LDA #$40       ; Channel: 6
C3/3578:	0443    	TSB $43        ; Queue HDMA-6
C3/357A:	60      	RTS

Main screen designation table for main menu
C3/357B:	F0 099A 	; 112 lines, use $9A09
C3/357E:	F0 799A 	; 112 lines, use $9A79
C3/3581:	00      	; End

Queue member swap animation for Order menu
C3/3582:	A528    	LDA $28        ; First choice
C3/3584:	C54B    	CMP $4B        ; Above second?
C3/3586:	9015    	BCC $359D      ; Branch if so
C3/3588:	A903    	LDA #$03       ; Min slot: 24
C3/358A:	A0D435  	LDY #$35D4     ; C3/35D4
C3/358D:	207311  	JSR $1173      ; Queue B's anim
C3/3590:	20C135  	JSR $35C1      ; Set slot B's Y
C3/3593:	A903    	LDA #$03       ; Min slot: 24
C3/3595:	A01F36  	LDY #$361F     ; C3/361F
C3/3598:	207311  	JSR $1173      ; Queue A's anim
C3/359B:	8015    	BRA $35B2      ; Set slot A's Y

Fork: First choice is above second
C3/359D:	A903    	LDA #$03       ; Min slot: 24
C3/359F:	A0D435  	LDY #$35D4     ; C3/35D4
C3/35A2:	207311  	JSR $1173      ; Queue A's anim
C3/35A5:	20B235  	JSR $35B2      ; Set slot A's Y
C3/35A8:	A903    	LDA #$03       ; Min slot: 24
C3/35AA:	A01F36  	LDY #$361F     ; C3/361F
C3/35AD:	207311  	JSR $1173      ; Queue B's anim
C3/35B0:	800F    	BRA $35C1      ; Set slot B's Y

Fork: Set base scanline for slot A
C3/35B2:	9B      	TXY            ; Queue index
C3/35B3:	7B      	TDC            ; Clear A
C3/35B4:	A528    	LDA $28        ; Chosen slot A
C3/35B6:	AA      	TAX            ; Index it
C3/35B7:	BFD035C3	LDA $C335D0,X  ; Base scanline
C3/35BB:	BB      	TYX            ; Queue index
C3/35BC:	9FCA337E	STA $7E33CA,X  ; Put in queue
C3/35C0:	60      	RTS

Fork: Set base scanline for slot B
C3/35C1:	9B      	TXY            ; Queue index
C3/35C2:	7B      	TDC            ; Clear A
C3/35C3:	A54B    	LDA $4B        ; Chosen slot B
C3/35C5:	AA      	TAX            ; Index it
C3/35C6:	BFD035C3	LDA $C335D0,X  ; Base scanline
C3/35CA:	BB      	TYX            ; Queue index
C3/35CB:	9FCA337E	STA $7E33CA,X  ; Put in queue
C3/35CF:	60      	RTS

Base scanlines for member swap animation
C3/35D0:	0D      	; Member slot 1
C3/35D1:	3D      	; Member slot 2
C3/35D2:	6D      	; Member slot 3
C3/35D3:	9D      	; Member slot 4

Erase member slot contents from the top down, and vice versa
C3/35D4:	AA      	TAX            ; Index mode
C3/35D5:	7CD835  	JMP ($35D8,X)  ; Handle mode

Jump table for the above
C3/35D8:	DE35    	; Pointless...
C3/35DA:	E335    	; Erase 4 lines
C3/35DC:	0236    	; Print 4 lines

Mode 0: Erase 4 lines, advance mode...
C3/35DE:	A62D    	LDX $2D        ; Queue index
C3/35E0:	FE4936  	INC $3649,X    ; Mode +1

Mode 1: Erase 4 lines
C3/35E3:	A42D    	LDY $2D        ; Queue index
C3/35E5:	A522    	LDA $22        ; Time left
C3/35E7:	C90C    	CMP #$0C       ; 12 frames?
C3/35E9:	F00F    	BEQ $35FA      ; Unmask if so
C3/35EB:	7B      	TDC            ; Clear A
C3/35EC:	B9CA33  	LDA $33CA,Y    ; Scanline
C3/35EF:	AA      	TAX            ; Index it
C3/35F0:	A906    	LDA #$06       ; On MS: BG2+BG3
C3/35F2:	207736  	JSR $3677      ; Hide 4 lines
C3/35F5:	99CA33  	STA $33CA,Y    ; Save scanline
C3/35F8:	38      	SEC            ; Set to requeue
C3/35F9:	60      	RTS

Fork: Start unmasking
C3/35FA:	A62D    	LDX $2D        ; Queue index
C3/35FC:	FE4936  	INC $3649,X    ; Mode +1
C3/35FF:	DECA33  	DEC $33CA,X    ; Scanline -1

Mode 2: Print 4 lines
C3/3602:	A545    	LDA $45        ; Menu flags
C3/3604:	8908    	BIT #$08       ; Got go-signal?
C3/3606:	F013    	BEQ $361B      ; Exit if not
C3/3608:	A42D    	LDY $2D        ; Queue index
C3/360A:	A522    	LDA $22        ; Timer expired?
C3/360C:	F00F    	BEQ $361D      ; Dequeue if so
C3/360E:	7B      	TDC            ; Clear A
C3/360F:	B9CA33  	LDA $33CA,Y    ; Scanline
C3/3612:	AA      	TAX            ; Index it
C3/3613:	A917    	LDA #$17       ; On MS: BGs+OBJ
C3/3615:	208D36  	JSR $368D      ; Unhide 4 lines
C3/3618:	99CA33  	STA $33CA,Y    ; Save scanline
C3/361B:	38      	SEC            ; Set to requeue
C3/361C:	60      	RTS            ; Exit
C3/361D:	18      	CLC            ; Set to dequeue
C3/361E:	60      	RTS

Erase member slot contents from the bottom up, and vice versa
C3/361F:	AA      	TAX            ; Index mode
C3/3620:	7C2336  	JMP ($3623,X)  ; Handle mode

Jump table for the above
C3/3623:	2936    	; Start from bottom
C3/3625:	3736    	; Erase 4 lines
C3/3627:	5836    	; Print 4 lines

Mode 0: Start from bottom
C3/3629:	A62D    	LDX $2D        ; Queue index
C3/362B:	FE4936  	INC $3649,X    ; Mode +1
C3/362E:	BDCA33  	LDA $33CA,X    ; Top scanline
C3/3631:	18      	CLC            ; Prepare ADC
C3/3632:	692F    	ADC #$2F       ; Go 47 px down
C3/3634:	9DCA33  	STA $33CA,X    ; Save changes

Mode 1: Erase 4 lines
C3/3637:	A42D    	LDY $2D        ; Queue index
C3/3639:	A522    	LDA $22        ; Time left
C3/363B:	C90C    	CMP #$0C       ; 12 frames?
C3/363D:	F011    	BEQ $3650      ; Unmask if so
C3/363F:	7B      	TDC            ; Clear A
C3/3640:	B9CA33  	LDA $33CA,Y    ; Scanline
C3/3643:	AA      	TAX            ; Index it
C3/3644:	A906    	LDA #$06       ; On MS: BG2+BG3
C3/3646:	208D36  	JSR $368D      ; Hide 4 lines
C3/3649:	99CA33  	STA $33CA,Y    ; Save scanline
C3/364C:	C622    	DEC $22        ; Anim timer -1
C3/364E:	38      	SEC            ; Set to requeue
C3/364F:	60      	RTS

Fork: Start ummasking
C3/3650:	A62D    	LDX $2D        ; Queue index
C3/3652:	FE4936  	INC $3649,X    ; Mode +1
C3/3655:	FECA33  	INC $33CA,X    ; Scanline +1

Mode 2: Print 4 lines
C3/3658:	A545    	LDA $45        ; Menu flags
C3/365A:	8908    	BIT #$08       ; Got go-signal?
C3/365C:	F015    	BEQ $3673      ; Exit if not
C3/365E:	A42D    	LDY $2D        ; Queue index
C3/3660:	A522    	LDA $22        ; Timer expired?
C3/3662:	F011    	BEQ $3675      ; Dequeue if so
C3/3664:	7B      	TDC            ; Clear A
C3/3665:	B9CA33  	LDA $33CA,Y    ; Scanline
C3/3668:	AA      	TAX            ; Index it
C3/3669:	A917    	LDA #$17       ; On MS: BGs+OBJ
C3/366B:	207736  	JSR $3677      ; Unhide 4 lines
C3/366E:	99CA33  	STA $33CA,Y    ; Save scanline
C3/3671:	C622    	DEC $22        ; Anim timer -1
C3/3673:	38      	SEC            ; Set to requeue
C3/3674:	60      	RTS            ; Exit
C3/3675:	18      	CLC            ; Set to dequeue
C3/3676:	60      	RTS

Enable or disable desired layers on next 4 lines below
C3/3677:	9F099A7E	STA $7E9A09,X  ; MS desig L1
C3/367B:	E8      	INX            ; Scanline +1
C3/367C:	9F099A7E	STA $7E9A09,X  ; MS desig L2
C3/3680:	E8      	INX            ; Scanline +1
C3/3681:	9F099A7E	STA $7E9A09,X  ; MS desig L3
C3/3685:	E8      	INX            ; Scanline +1
C3/3686:	9F099A7E	STA $7E9A09,X  ; MS desig L4
C3/368A:	E8      	INX            ; Scanline +1
C3/368B:	8A      	TXA            ; Line number
C3/368C:	60      	RTS

Enable or disable desired layers on next 4 lines above
C3/368D:	9F099A7E	STA $7E9A09,X  ; MS desig L4
C3/3691:	CA      	DEX            ; Scanline -1
C3/3692:	9F099A7E	STA $7E9A09,X  ; MS desig L3
C3/3696:	CA      	DEX            ; Scanline -1
C3/3697:	9F099A7E	STA $7E9A09,X  ; MS desig L2
C3/369B:	CA      	DEX            ; Scanline -1
C3/369C:	9F099A7E	STA $7E9A09,X  ; MS desig L1
C3/36A0:	CA      	DEX            ; Scanline -1
C3/36A1:	8A      	TXA            ; Line number
C3/36A2:	60      	RTS

Set to condense BG3 text in main menu
C3/36A3:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/36A5:	8D5043  	STA $4350      ; Set DMA mode
C3/36A8:	A912    	LDA #$12       ; $2112
C3/36AA:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/36AD:	A0C236  	LDY #$36C2     ; C3/36C2
C3/36B0:	8C5243  	STY $4352      ; Set src LBs
C3/36B3:	A9C3    	LDA #$C3       ; Bank: C3
C3/36B5:	8D5443  	STA $4354      ; Set src HB
C3/36B8:	A9C3    	LDA #$C3       ; ...
C3/36BA:	8D5743  	STA $4357      ; Set indir HB
C3/36BD:	A920    	LDA #$20       ; Channel: 5
C3/36BF:	0443    	TSB $43        ; Queue HDMA-5
C3/36C1:	60      	RTS

Text shifting table for the above
C3/36C2:	0F 0000 	; Nothing
C3/36C5:	0F 0300 	; Item
C3/36C8:	0F 0400 	; Skills
C3/36CB:	0F 0500 	; Equip
C3/36CE:	0F 0600 	; Relic
C3/36D1:	0F 0700 	; Status
C3/36D4:	0F 0800 	; Config
C3/36D7:	0F 0900 	; Save
C3/36DA:	07 0800 	; Nothing
C3/36DD:	08 0000 	; Nothing
C3/36E0:	08 0000 	; Time
C3/36E3:	18 0000 	; The rest
C3/36E6:	00      	; End

65: Shift screen left or right
C3/36E7:	A520    	LDA $20        ; Timer expired?
C3/36E9:	D004    	BNE $36EF      ; Branch if not
C3/36EB:	A527    	LDA $27        ; Queued command
C3/36ED:	8526    	STA $26        ; Execute it next
C3/36EF:	C220    	REP #$20       ; 16-bit A
C3/36F1:	A535    	LDA $35        ; BG1 X-Pos
C3/36F3:	18      	CLC            ; Prepare ADC
C3/36F4:	659C    	ADC $9C        ; Add scroll speed
C3/36F6:	8535    	STA $35        ; Set BG1 X-Pos
C3/36F8:	8539    	STA $39        ; Set BG2 X-Pos
C3/36FA:	853D    	STA $3D        ; Set BG3 X-Pos
C3/36FC:	E220    	SEP #$20       ; 8-bit A
C3/36FE:	60      	RTS

Load navigation data for non-shifted Status menu
C3/36FF:	A00E37  	LDY #$370E     ; C3/370E
C3/3702:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for non-shifted Status menu
C3/3705:	202D07  	JSR $072D      ; Handle D-Pad
C3/3708:	A01337  	LDY #$3713     ; C3/3713
C3/370B:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for non-shifted Status menu
C3/370E:	80      	; Wraps vertically
C3/370F:	00      	; Initial column
C3/3710:	00      	; Initial row
C3/3711:	01      	; 1 column
C3/3712:	04      	; 4 rows

Cursor positions for non-shifted Status menu
C3/3713:	9059    	; Command 1
C3/3715:	9065    	; Command 2
C3/3717:	9071    	; Command 3
C3/3719:	907D    	; Command 4

Text, "Wounded "
C3/371B:	96A8AEA79D9E9DFF

Text pointers for main menu and save file submenus
C3/3723:	0438    	; Time
C3/3725:	0F38    	; Steps
C3/3727:	5038    	; Order
C3/3729:	CB37    	; Item
C3/372B:	D237    	; Skills
C3/372D:	E337    	; Relic
C3/372F:	EB37    	; Status
C3/3731:	7E37    	; /
C3/3733:	8237    	; /
C3/3735:	9537    	; /
C3/3737:	9937    	; /
C3/3739:	AC37    	; /
C3/373B:	B037    	; /
C3/373D:	C337    	; /
C3/373F:	C737    	; /
C3/3741:	6F37    	; LV
C3/3743:	7437    	; HP
C3/3745:	7937    	; MP
C3/3747:	8637    	; LV
C3/3749:	8B37    	; HP
C3/374B:	9037    	; MP
C3/374D:	9D37    	; LV
C3/374F:	A237    	; HP
C3/3751:	A737    	; MP
C3/3753:	B437    	; LV
C3/3755:	B937    	; HP
C3/3757:	BE37    	; MP
C3/3759:	DB37    	; Equip
C3/375B:	F437    	; Config
C3/375D:	1C38    	; Yes
C3/375F:	2238    	; No
C3/3761:	2738    	; This
C3/3763:	2E38    	; data?
C3/3765:	1C38    	; Yes
C3/3767:	2238    	; No
C3/3769:	3638    	; Erasing
C3/376B:	4038    	; data.
C3/376D:	4838    	; Okay?

Positioned text for main menu and save file submenus
C3/376F:        9D39 8B9500                    ; LV
C3/3774:        DD39 878F00                    ; HP
C3/3779:        1D3A 8C8F00                    ; MP
C3/377E:        EB39 C000                      ; /
C3/3782:        2B3A C000                      ; /
C3/3786:        1D3B 8B9500                    ; LV
C3/378B:        5D3B 878F00                    ; HP
C3/3790:        9D3B 8C8F00                    ; MP
C3/3795:        6B3B C000                      ; /
C3/3799:        AB3B C000                      ; /
C3/379D:        9D3C 8B9500                    ; LV
C3/37A2:        DD3C 878F00                    ; HP
C3/37A7:        1D3D 8C8F00                    ; MP
C3/37AC:        EB3C C000                      ; /
C3/37B0:        2B3D C000                      ; /
C3/37B4:        1D3E 8B9500                    ; LV
C3/37B9:        5D3E 878F00                    ; HP
C3/37BE:        9D3E 8C8F00                    ; MP
C3/37C3:        6B3E C000                      ; /
C3/37C7:        AB3E C000                      ; /
C3/37CB:        3979 88AD9EA600                ; Item
C3/37D2:        B979 92A4A2A5A5AC00            ; Skills
C3/37DB:        397A 84AAAEA2A900              ; Equip
C3/37E3:        B97A 919EA5A29C00              ; Relic
C3/37EB:        397B 92AD9AADAEAC00            ; Status
C3/37F4:        B97B 82A8A79FA2A000            ; Config
C3/37FD:        397C 929AAF9E00                ; Save
C3/3804:        BB7C 93A2A69E00                ; Time
C3/380B:        FF7C C100                      ; :
C3/380F:        B77D 92AD9EA9AC00              ; Steps
C3/3817:        777E 86A900                    ; Gp
C3/381C:        BD7A 989EAC00                  ; Yes
C3/3822:        3D7B 8DA800                    ; No
C3/3827:        3779 93A1A2AC00                ; This
C3/382E:        B779 9D9AAD9ABF00              ; data?
C3/3836:        3779 84AB9AACA2A7A000          ; Erasing
C3/3840:        B779 9D9AAD9AC500              ; data.
C3/3848:        377A 8EA49AB2BF00              ; Okay?
C3/3850:        3D81 8EAB9D9EAB00              ; Order

Load navigation data for Config page 1
C3/3858:	A06738  	LDY #$3867     ; C3/3867
C3/385B:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for Config page 1
C3/385E:	202D07  	JSR $072D      ; Handle D-Pad
C3/3861:	A06C38  	LDY #$386C     ; C3/386C
C3/3864:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for Config page 1
C3/3867:	81      	; Never wraps
C3/3868:	00      	; Initial column
C3/3869:	00      	; Initial row
C3/386A:	01      	; 1 column
C3/386B:	09      	; 9 rows

Cursor positions for Config page 1
C3/386C:	6029    	; Bat.Mode
C3/386E:	6039    	; Bat.Speed
C3/3870:	6049    	; Msg.Speed
C3/3872:	6059    	; Cmd.Set
C3/3874:	6069    	; Gauge
C3/3876:	6079    	; Sound
C3/3878:	6089    	; Cursor
C3/387A:	6099    	; Reequip
C3/387C:	60A9    	; Controller

Load navigation data for Config page 2
C3/387E:	A08D38  	LDY #$388D     ; C3/388D
C3/3881:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for Config page 2
C3/3884:	202D07  	JSR $072D      ; Handle D-Pad
C3/3887:	A09238  	LDY #$3892     ; C3/3892
C3/388A:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for Config page 2
C3/388D:	81      	; Never wraps
C3/388E:	00      	; Initial column
C3/388F:	00      	; Initial row
C3/3890:	01      	; 1 column
C3/3891:	06      	; 6 rows

Cursor positions for Config page 2
C3/3892:	6029    	; Mag.Order
C3/3894:	6069    	; Window
C3/3896:	6079    	; Color
C3/3898:	6099    	; R
C3/389A:	60A9    	; G
C3/389C:	60B9    	; B

Draw Config menu, load navigation data, create arrow
C3/389E:	A902    	LDA #$02       ; 32x64 at $0000
C3/38A0:	8D0721  	STA $2107      ; Set BG1 map loc
C3/38A3:	A0FBFF  	LDY #$FFFB     ; Y: -5
C3/38A6:	843F    	STY $3F        ; Set BG3 Y-Pos
C3/38A8:	20286A  	JSR $6A28      ; Clear BG2 map A
C3/38AB:	A0E239  	LDY #$39E2     ; C3/39E2
C3/38AE:	204103  	JSR $0341      ; Draw main window
C3/38B1:	A0E639  	LDY #$39E6     ; C3/39E6
C3/38B4:	204103  	JSR $0341      ; Draw title window
C3/38B7:	20520E  	JSR $0E52      ; Upload windows
C3/38BA:	205E39  	JSR $395E      ; Load gauge colors
C3/38BD:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/38C0:	20196A  	JSR $6A19      ; Clear BG1 map B
C3/38C3:	203C6A  	JSR $6A3C      ; Clear BG3 map A
C3/38C6:	20416A  	JSR $6A41      ; Clear BG3 map B
C3/38C9:	A92C    	LDA #$2C       ; Palette 3
C3/38CB:	8529    	STA $29        ; Color: Blue
C3/38CD:	A0A149  	LDY #$49A1     ; Text pointer
C3/38D0:	20F902  	JSR $02F9      ; Draw "Config"
C3/38D3:	A924    	LDA #$24       ; Palette 1
C3/38D5:	8529    	STA $29        ; Color: Blue
C3/38D7:	A29349  	LDX #$4993     ; Text ptrs loc
C3/38DA:	A00E00  	LDY #$000E     ; Strings: 7
C3/38DD:	20BA69  	JSR $69BA      ; Draw Bat.Mode, etc.
C3/38E0:	A924    	LDA #$24       ; ...
C3/38E2:	8529    	STA $29        ; ...
C3/38E4:	A20349  	LDX #$4903     ; Text ptrs loc
C3/38E7:	A00400  	LDY #$0004     ; Strings: 2
C3/38EA:	20BA69  	JSR $69BA      ; Draw Cursor, Contr.
C3/38ED:	A920    	LDA #$20       ; Palette 0
C3/38EF:	8529    	STA $29        ; Color: User's
C3/38F1:	A20749  	LDX #$4907     ; Text ptrs loc
C3/38F4:	A00400  	LDY #$0004     ; Strings: 2
C3/38F7:	20BA69  	JSR $69BA      ; Draw Fast, Slow
C3/38FA:	208C3B  	JSR $3B8C      ; Draw Active, Wait
C3/38FD:	20B73B  	JSR $3BB7      ; Draw Bat.Spd nums
C3/3900:	20F23B  	JSR $3BF2      ; Draw Msg.Spd nums
C3/3903:	20333C  	JSR $3C33      ; Draw Window, Short
C3/3906:	205C3C  	JSR $3C5C      ; Draw On and Off
C3/3909:	20853C  	JSR $3C85      ; Draw Stereo, Mono
C3/390C:	20B03C  	JSR $3CB0      ; Draw Reset, Memory
C3/390F:	20DB3C  	JSR $3CDB      ; Draw Optimum, Empty
C3/3912:	20063D  	JSR $3D06      ; Draw Single/Multiple
C3/3915:	A924    	LDA #$24       ; Palette 1
C3/3917:	8529    	STA $29        ; Color: Blue
C3/3919:	A21C4A  	LDX #$4A1C     ; Text ptrs loc
C3/391C:	A00600  	LDY #$0006     ; Strings: 3
C3/391F:	20BA69  	JSR $69BA      ; Draw page-2 titles
C3/3922:	205039  	JSR $3950      ; Draw empty gauges
C3/3925:	A920    	LDA #$20       ; Palette 0
C3/3927:	8529    	STA $29        ; Color: User's
C3/3929:	A2284A  	LDX #$4A28     ; Text ptrs loc
C3/392C:	A00C00  	LDY #$000C     ; Strings: 6
C3/392F:	20BA69  	JSR $69BA      ; Draw A/B/C, R/G/B
C3/3932:	20FD3F  	JSR $3FFD      ; Draw M.Order options
C3/3935:	20EA40  	JSR $40EA      ; Draw skin numbers
C3/3938:	203341  	JSR $4133      ; Draw skin palette
C3/393B:	20C341  	JSR $41C3      ; Draw RGB info
C3/393E:	20F539  	JSR $39F5      ; Get nav data; BG1 Y
C3/3941:	20280E  	JSR $0E28      ; Upload BG1 A+B
C3/3944:	206E0E  	JSR $0E6E      ; Upload BG3 A+B
C3/3947:	A901    	LDA #$01       ; Min slot: 8
C3/3949:	A08039  	LDY #$3980     ; C3/3980
C3/394C:	207311  	JSR $1173      ; Queue arrow OAM
C3/394F:	60      	RTS

Draw empty color gauges
C3/3950:	A930    	LDA #$30       ; Palette 4
C3/3952:	8529    	STA $29        ; Color: Gray
C3/3954:	A2224A  	LDX #$4A22     ; Text ptrs loc
C3/3957:	A00600  	LDY #$0006     ; Strings: 3
C3/395A:	20BA69  	JSR $69BA      ; Draw text
C3/395D:	60      	RTS

Load color gauge palette
C3/395E:	A600    	LDX $00        ; Color index: 0
C3/3960:	A940    	LDA #$40       ; CGRAM: $0080
C3/3962:	8D2121  	STA $2121      ; To BG pal 4
C3/3965:	C220    	REP #$20       ; 16-bit A
C3/3967:	BF80E8D8	LDA $D8E880,X  ; Font color
C3/396B:	9FC9307E	STA $7E30C9,X  ; Save in RAM
C3/396F:	E220    	SEP #$20       ; 8-bit A
C3/3971:	8D2221  	STA $2122      ; Put LB in CGRAM
C3/3974:	EB      	XBA            ; Switch to HB
C3/3975:	8D2221  	STA $2122      ; Put HB in CGRAM
C3/3978:	E8      	INX            ; Color index +1
C3/3979:	E8      	INX            ; Color index +1
C3/397A:	E02000  	CPX #$0020     ; Done 16 colors?
C3/397D:	D0E6    	BNE $3965      ; Loop if not
C3/397F:	60      	RTS

Update arrow in Config menu
C3/3980:	AA      	TAX            ; Index mode
C3/3981:	7C8439  	JMP ($3984,X)  ; Handle mode

Jump table for the above
C3/3984:	8839    	; Initialize arrow
C3/3986:	AB39    	; Sustain arrow

Mode 0: Initialize arrow
C3/3988:	A62D    	LDX $2D        ; Queue index
C3/398A:	C220    	REP #$20       ; 16-bit A
C3/398C:	A9CB39  	LDA #$39CB     ; Anim table ptr
C3/398F:	9DC932  	STA $32C9,X    ; Set arrow's
C3/3992:	A97800  	LDA #$0078     ; X: 120
C3/3995:	9DCA33  	STA $33CA,X    ; Set arrow's
C3/3998:	A91800  	LDA #$0018     ; Base Y: 24
C3/399B:	9D4A34  	STA $344A,X    ; Set arrow's
C3/399E:	E220    	SEP #$20       ; 8-bit A
C3/39A0:	A9C3    	LDA #$C3       ; Bank: C3
C3/39A2:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/39A5:	FE4936  	INC $3649,X    ; Mode +1
C3/39A8:	200612  	JSR $1206      ; Set pose timer

Mode 1: Sustain arrow
C3/39AB:	A42D    	LDY $2D        ; Queue index
C3/39AD:	A54A    	LDA $4A        ; On first page?
C3/39AF:	F004    	BEQ $39B5      ; Branch if so
C3/39B1:	A902    	LDA #$02       ; Arrow: Up
C3/39B3:	8001    	BRA $39B6      ; Skip a line
C3/39B5:	7B      	TDC            ; Arrow: Down
C3/39B6:	AA      	TAX            ; Set index
C3/39B7:	C220    	REP #$20       ; 16-bit A
C3/39B9:	BFC739C3	LDA $C339C7,X  ; Anim table ptr
C3/39BD:	99C932  	STA $32C9,Y    ; Set arrow's
C3/39C0:	E220    	SEP #$20       ; ...
C3/39C2:	202112  	JSR $1221      ; Define OAM
C3/39C5:	38      	SEC            ; Set to requeue
C3/39C6:	60      	RTS

Pointers for Config's large arrows
C3/39C7:	CB39    	; Downward arrow
C3/39C9:	D439    	; Upward arrow

Animation table for large downward arrow
C3/39CB:	5BB4    	; Hide arrow
C3/39CD:	10      	; Frames: 16
C3/39CE:	DD39    	; Show arrow
C3/39D0:	10      	; Frames: 16
C3/39D1:	5BB4    	; Bogus...
C3/39D3:	FF      	; Loop

Animation table for large upward arrow
C3/39D4:	5BB4    	; Hide arrow
C3/39D6:	10      	; Frames: 16
C3/39D7:	61B4    	; Show arrow
C3/39D9:	10      	; Frames: 16
C3/39DA:	5BB4    	; Bogus...
C3/39DC:	FF      	; Loop

OAM for large downward arrow
C3/39DD:	01      	; Tiles: 1
C3/39DE:	80B0    	; 16x16, X+0, Y+176
C3/39E0:	033E    	; Tile 3, pal 7, prio 3

Window layout for Config menu
C3/39E2:	0B591C16	; 30x24 at $590B (Main)
C3/39E6:	B7580602	; 08x04 at $58B7 (Title)

Switch to Config page 2
C3/39EA:	A0FB00  	LDY #$00FB     ; Y: 251
C3/39ED:	8437    	STY $37        ; Set BG1 Y-Pos
C3/39EF:	207E38  	JSR $387E      ; Load navig data
C3/39F2:	4C8738  	JMP $3887      ; Relocate cursor

Switch to Config page 1
C3/39F5:	A0FBFF  	LDY #$FFFB     ; Y: -5
C3/39F8:	8437    	STY $37        ; Set BG1 Y-Pos
C3/39FA:	205838  	JSR $3858      ; Load navig data
C3/39FD:	4C6138  	JMP $3861      ; Relocate cursor

50: Scroll to Config page 2
C3/3A00:	A520    	LDA $20        ; Timer expired?
C3/3A02:	F011    	BEQ $3A15      ; Finalize if so
C3/3A04:	A54A    	LDA $4A        ; On page 2?...
C3/3A06:	D014    	BNE $3A1C      ; Branch if so
C3/3A08:	C220    	REP #$20       ; 16-bit A
C3/3A0A:	A537    	LDA $37        ; BG1 Y-Pos
C3/3A0C:	18      	CLC            ; Prepare ADC
C3/3A0D:	691000  	ADC #$0010     ; Move 16 px down
C3/3A10:	8537    	STA $37        ; Save changes
C3/3A12:	E220    	SEP #$20       ; 8-bit A
C3/3A14:	60      	RTS            ; Exit
C3/3A15:	A901    	LDA #$01       ; Screen: 2nd
C3/3A17:	854A    	STA $4A        ; Set active page
C3/3A19:	20EA39  	JSR $39EA      ; Switch screens
C3/3A1C:	A90E    	LDA #$0E       ; C3/22C5
C3/3A1E:	8526    	STA $26        ; Next: Sustain menu
C3/3A20:	60      	RTS

51: Scroll to Config page 1
C3/3A21:	A520    	LDA $20        ; Timer expired?
C3/3A23:	F011    	BEQ $3A36      ; Finalize if so
C3/3A25:	A54A    	LDA $4A        ; On page 1?...
C3/3A27:	F01E    	BEQ $3A47      ; Branch if so
C3/3A29:	C220    	REP #$20       ; 16-bit A
C3/3A2B:	A537    	LDA $37        ; BG1 Y-Pos
C3/3A2D:	38      	SEC            ; Prepare SBC
C3/3A2E:	E91000  	SBC #$0010     ; Move 16 px up
C3/3A31:	8537    	STA $37        ; Save changes
C3/3A33:	E220    	SEP #$20       ; 8-bit A
C3/3A35:	60      	RTS            ; Exit
C3/3A36:	644A    	STZ $4A        ; Page: 1st
C3/3A38:	A0FBFF  	LDY #$FFFB     ; Y: -5
C3/3A3B:	8437    	STY $37        ; Set BG1 Y-Pos
C3/3A3D:	205838  	JSR $3858      ; Load navig data
C3/3A40:	A908    	LDA #$08       ; Row: Controller
C3/3A42:	854E    	STA $4E        ; Set cursor row
C3/3A44:	206138  	JSR $3861      ; Relocate cursor
C3/3A47:	A90E    	LDA #$0E       ; C3/22C5
C3/3A49:	8526    	STA $26        ; Next: Sustain menu
C3/3A4B:	60      	RTS

Set Window 2 positions per scanline for Config menu
C3/3A4C:	A901    	LDA #$01       ; 2Rx1B to PPU
C3/3A4E:	8D5043  	STA $4350      ; Set DMA mode
C3/3A51:	A928    	LDA #$28       ; $2128, $2129
C3/3A53:	8D5143  	STA $4351      ; To Win 2 L+R
C3/3A56:	A07A3A  	LDY #$3A7A     ; C3/3A7A
C3/3A59:	8C5243  	STY $4352      ; Set src LBs
C3/3A5C:	A9C3    	LDA #$C3       ; Bank: C3
C3/3A5E:	8D5443  	STA $4354      ; Set src HB
C3/3A61:	A9C3    	LDA #$C3       ; ...
C3/3A63:	8D5743  	STA $4357      ; Set indir HB
C3/3A66:	A920    	LDA #$20       ; Channel: 5
C3/3A68:	0443    	TSB $43        ; Queue HDMA-5
C3/3A6A:	60      	RTS

Set Window 2 positions for main menu
C3/3A6B:	A920    	LDA #$20       ; Channel: 5
C3/3A6D:	1443    	TRB $43        ; Halt HDMA-5
C3/3A6F:	A908    	LDA #$08       ; X: 8
C3/3A71:	8D2821  	STA $2128      ; Set left loc
C3/3A74:	A9F7    	LDA #$F7       ; X: 247
C3/3A76:	8D2921  	STA $2129      ; Set right loc
C3/3A79:	60      	RTS

Window 2 positions per scanline for Config menu
C3/3A7A:	27 FF FF	; 39 lines: 255, 255
C3/3A7D:	50 08 F7	; 80 lines: 8, 247
C3/3A80:	50 08 F7	; 80 lines: 8, 247
C3/3A83:	10 FF FF	; 16 lines: 255, 255
C3/3A86:	00      	; End

Upload skin graphics, load colors and tile attributes
C3/3A87:	A00078  	LDY #$7800     ; $7800
C3/3A8A:	8414    	STY $14        ; Set VRAM ptr
C3/3A8C:	AD4E1D  	LDA $1D4E      ; Skin, etc.
C3/3A8F:	20303B  	JSR $3B30      ; Set source
C3/3A92:	AD4E1D  	LDA $1D4E      ; Skin, etc.
C3/3A95:	A26000  	LDX #$0060     ; To 7E/312B
C3/3A98:	205B3B  	JSR $3B5B      ; Load colors
C3/3A9B:	A0001C  	LDY #$1C00     ; Palette: 7
C3/3A9E:	4C2603  	JMP $0326      ; Build skin map

Upload skin for save file 1
C3/3AA1:	A0007A  	LDY #$7A00     ; $7A00
C3/3AA4:	8414    	STY $14        ; Set VRAM ptr
C3/3AA6:	A491    	LDY $91        ; Blank file?
C3/3AA8:	F006    	BEQ $3AB0      ; Branch if so
C3/3AAA:	AF4E6730	LDA $30674E    ; Skin, etc.
C3/3AAE:	8001    	BRA $3AB1      ; Skip a line
C3/3AB0:	7B      	TDC            ; Use skin 1
C3/3AB1:	20303B  	JSR $3B30      ; Set source
C3/3AB4:	208814  	JSR $1488      ; Upload skin
C3/3AB7:	A02018  	LDY #$1820     ; Tile+32, pal 6
C3/3ABA:	4C2603  	JMP $0326      ; Build skin map

Upload skin for save file 2
C3/3ABD:	A0007C  	LDY #$7C00     ; $7C00
C3/3AC0:	8414    	STY $14        ; Set VRAM ptr
C3/3AC2:	A493    	LDY $93        ; Blank file?
C3/3AC4:	F006    	BEQ $3ACC      ; Branch if so
C3/3AC6:	AF4E7130	LDA $30714E    ; Skin, etc.
C3/3ACA:	8001    	BRA $3ACD      ; Skip a line
C3/3ACC:	7B      	TDC            ; Use skin 1
C3/3ACD:	20303B  	JSR $3B30      ; Set source
C3/3AD0:	208814  	JSR $1488      ; Upload skin
C3/3AD3:	A04014  	LDY #$1440     ; Tile+64, pal 5
C3/3AD6:	4C2603  	JMP $0326      ; Build skin map

Upload skin for save file 3
C3/3AD9:	A0007E  	LDY #$7E00     ; $7E00
C3/3ADC:	8414    	STY $14        ; Set VRAM ptr
C3/3ADE:	A495    	LDY $95        ; Blank file?
C3/3AE0:	F006    	BEQ $3AE8      ; Branch if so
C3/3AE2:	AF4E7B30	LDA $307B4E    ; Skin, etc.
C3/3AE6:	8001    	BRA $3AE9      ; Skip a line
C3/3AE8:	7B      	TDC            ; Use skin 1
C3/3AE9:	20303B  	JSR $3B30      ; Set source
C3/3AEC:	208814  	JSR $1488      ; Upload skin
C3/3AEF:	A06010  	LDY #$1060     ; Tile+96, pal 4
C3/3AF2:	4C2603  	JMP $0326      ; Build skin map

Load skin colors for save file 1
C3/3AF5:	A491    	LDY $91        ; Blank file?
C3/3AF7:	F006    	BEQ $3AFF      ; Branch if so
C3/3AF9:	AF4E6730	LDA $30674E    ; Skin, etc.
C3/3AFD:	8001    	BRA $3B00      ; Skip a line
C3/3AFF:	7B      	TDC            ; Use skin 1
C3/3B00:	A24000  	LDX #$0040     ; To 7E/310B
C3/3B03:	205B3B  	JSR $3B5B      ; Load colors
C3/3B06:	4CD214  	JMP $14D2      ; Refresh CGRAM

Load skin colors for save file 2
C3/3B09:	A493    	LDY $93        ; Blank file?
C3/3B0B:	F006    	BEQ $3B13      ; Branch if so
C3/3B0D:	AF4E7130	LDA $30714E    ; Skin, etc.
C3/3B11:	8001    	BRA $3B14      ; Skip a line
C3/3B13:	7B      	TDC            ; Use skin 1
C3/3B14:	A22000  	LDX #$0020     ; To 7E/30EB
C3/3B17:	205B3B  	JSR $3B5B      ; Load colors
C3/3B1A:	4CD214  	JMP $14D2      ; Refresh CGRAM

Load skin colors for save file 3
C3/3B1D:	A495    	LDY $95        ; Blank file?
C3/3B1F:	F006    	BEQ $3B27      ; Branch if so
C3/3B21:	AF4E7B30	LDA $307B4E    ; Skin, etc.
C3/3B25:	8001    	BRA $3B28      ; Skip a line
C3/3B27:	7B      	TDC            ; Use skin 1
C3/3B28:	A600    	LDX $00        ; To 7E/30CB
C3/3B2A:	205B3B  	JSR $3B5B      ; Load colors
C3/3B2D:	4CD214  	JMP $14D2      ; Refresh CGRAM

Set source for uploading skin graphics
C3/3B30:	290F    	AND #$0F       ; Skin number
C3/3B32:	85E0    	STA $E0        ; Set counter
C3/3B34:	64E1    	STZ $E1        ; Clear HB
C3/3B36:	A00000  	LDY #$0000     ; ED/0000
C3/3B39:	8416    	STY $16        ; Set src LBs
C3/3B3B:	A9ED    	LDA #$ED       ; Bank: ED
C3/3B3D:	8518    	STA $18        ; Set src HB
C3/3B3F:	C220    	REP #$20       ; 16-bit A
C3/3B41:	7B      	TDC            ; Source mod: 0
C3/3B42:	A4E0    	LDY $E0        ; Loop counter
C3/3B44:	F008    	BEQ $3B4E      ; Branch if 0
C3/3B46:	18      	CLC            ; Prepare ADC
C3/3B47:	698003  	ADC #$0380     ; Adjust src mod
C3/3B4A:	C6E0    	DEC $E0        ; Counter -1
C3/3B4C:	80F4    	BRA $3B42      ; Loop
C3/3B4E:	18      	CLC            ; Prepare ADC
C3/3B4F:	6516    	ADC $16        ; Add src LBs
C3/3B51:	8516    	STA $16        ; Set src LBs
C3/3B53:	E220    	SEP #$20       ; 8-bit A
C3/3B55:	A00004  	LDY #$0400     ; Bytes: 1024
C3/3B58:	8412    	STY $12        ; Set data size
C3/3B5A:	60      	RTS

Apply player's skin colors
C3/3B5B:	290F    	AND #$0F       ; Skin number
C3/3B5D:	85E0    	STA $E0        ; Set counter
C3/3B5F:	DA      	PHX            ; ...
C3/3B60:	A900    	LDA #$00       ; Bank: 00
C3/3B62:	85E9    	STA $E9        ; Set src HB
C3/3B64:	64E1    	STZ $E1        ; Counter HB: 0
C3/3B66:	C220    	REP #$20       ; 16-bit A
C3/3B68:	A9571D  	LDA #$1D57     ; Base: 7E/1D57
C3/3B6B:	A4E0    	LDY $E0        ; Loop counter
C3/3B6D:	F008    	BEQ $3B77      ; Branch if 0
C3/3B6F:	18      	CLC            ; Prepare ADC
C3/3B70:	690E00  	ADC #$000E     ; Skip 7 colors
C3/3B73:	C6E0    	DEC $E0        ; Counter -1
C3/3B75:	80F4    	BRA $3B6B      ; Loop
C3/3B77:	85E7    	STA $E7        ; Set source LBs
C3/3B79:	E220    	SEP #$20       ; 8-bit A
C3/3B7B:	A400    	LDY $00        ; Src index: 0
C3/3B7D:	FA      	PLX            ; ...
C3/3B7E:	B7E7    	LDA [$E7],Y    ; Player color
C3/3B80:	9FCB307E	STA $7E30CB,X  ; Put in palette
C3/3B84:	C8      	INY            ; Src index +1
C3/3B85:	E8      	INX            ; Dst index +1
C3/3B86:	C00E00  	CPY #$000E     ; Done 7 colors?
C3/3B89:	D0F3    	BNE $3B7E      ; Loop if not
C3/3B8B:	60      	RTS

Draw Bat.Mode settings
C3/3B8C:	AD4D1D  	LDA $1D4D      ; Game options
C3/3B8F:	2908    	AND #$08       ; Wait mode?
C3/3B91:	F009    	BEQ $3B9C      ; Branch if not
C3/3B93:	A928    	LDA #$28       ; Color: Gray
C3/3B95:	20A53B  	JSR $3BA5      ; Draw "Active"
C3/3B98:	A920    	LDA #$20       ; Color: User's
C3/3B9A:	8012    	BRA $3BAE      ; Draw "Wait"

Fork: Active mode
C3/3B9C:	A920    	LDA #$20       ; Color: User's
C3/3B9E:	20A53B  	JSR $3BA5      ; Draw "Active"
C3/3BA1:	A928    	LDA #$28       ; Color: Gray
C3/3BA3:	8009    	BRA $3BAE      ; Draw "Wait"

Fork: Draw "Active"
C3/3BA5:	8529    	STA $29        ; Set palette
C3/3BA7:	A0F149  	LDY #$49F1     ; Text pointer
C3/3BAA:	20F902  	JSR $02F9      ; Draw "Active"
C3/3BAD:	60      	RTS

Fork: Draw "Wait"
C3/3BAE:	8529    	STA $29        ; Set palette
C3/3BB0:	A01849  	LDY #$4918     ; Text pointer
C3/3BB3:	20F902  	JSR $02F9      ; Draw "Wait"
C3/3BB6:	60      	RTS

Draw Bat.Speed values
C3/3BB7:	A928    	LDA #$28       ; Palette 2
C3/3BB9:	8529    	STA $29        ; Color: Gray
C3/3BBB:	A06E49  	LDY #$496E     ; Text pointer
C3/3BBE:	20F902  	JSR $02F9      ; Draw 1-6 in gray
C3/3BC1:	A920    	LDA #$20       ; Palette 0
C3/3BC3:	8529    	STA $29        ; Color: User's
C3/3BC5:	7B      	TDC            ; Clear A
C3/3BC6:	AD4D1D  	LDA $1D4D      ; Game options
C3/3BC9:	2907    	AND #$07       ; Get Bat.Speed
C3/3BCB:	0A      	ASL A          ; Double it
C3/3BCC:	AA      	TAX            ; Index it
C3/3BCD:	C220    	REP #$20       ; 16-bit A
C3/3BCF:	BFE63BC3	LDA $C33BE6,X  ; Tilemap ptr
C3/3BD3:	85F7    	STA $F7        ; Set position
C3/3BD5:	E220    	SEP #$20       ; 8-bit A
C3/3BD7:	AD4D1D  	LDA $1D4D      ; Game options
C3/3BDA:	2907    	AND #$07       ; Get Bat.Speed
C3/3BDC:	18      	CLC            ; ...
C3/3BDD:	69B5    	ADC #$B5       ; Convert to text
C3/3BDF:	85F9    	STA $F9        ; Add to string
C3/3BE1:	64FA    	STZ $FA        ; End string
C3/3BE3:	4C1641  	JMP $4116      ; Draw user speed

Tilemap pointers for Bat.Speed values
C3/3BE6:	253A    	; 1
C3/3BE8:	293A    	; 2
C3/3BEA:	2D3A    	; 3
C3/3BEC:	313A    	; 4
C3/3BEE:	353A    	; 5
C3/3BF0:	393A    	; 6

Draw Msg.Speed values
C3/3BF2:	A928    	LDA #$28       ; Palette 2
C3/3BF4:	8529    	STA $29        ; Color: Gray
C3/3BF6:	A07C49  	LDY #$497C     ; Text pointer
C3/3BF9:	20F902  	JSR $02F9      ; Draw 1-6 in gray
C3/3BFC:	A920    	LDA #$20       ; Palette 0
C3/3BFE:	8529    	STA $29        ; Color: User's
C3/3C00:	7B      	TDC            ; Clear A
C3/3C01:	AD4D1D  	LDA $1D4D      ; Game options
C3/3C04:	2970    	AND #$70       ; Get Msg.Speed
C3/3C06:	4A      	LSR A          ; 2
C3/3C07:	4A      	LSR A          ; 4
C3/3C08:	4A      	LSR A          ; 8
C3/3C09:	AA      	TAX            ; Index it
C3/3C0A:	C220    	REP #$20       ; 16-bit A
C3/3C0C:	BF273CC3	LDA $C33C27,X  ; Tilemap ptr
C3/3C10:	85F7    	STA $F7        ; Set position
C3/3C12:	E220    	SEP #$20       ; 8-bit A
C3/3C14:	AD4D1D  	LDA $1D4D      ; Game options
C3/3C17:	2970    	AND #$70       ; Get Msg.Speed
C3/3C19:	4A      	LSR A          ; 2
C3/3C1A:	4A      	LSR A          ; 4
C3/3C1B:	4A      	LSR A          ; 8
C3/3C1C:	4A      	LSR A          ; Now 0-7
C3/3C1D:	18      	CLC            ; ...
C3/3C1E:	69B5    	ADC #$B5       ; Convert to text
C3/3C20:	85F9    	STA $F9        ; Add to string
C3/3C22:	64FA    	STZ $FA        ; End string
C3/3C24:	4C1641  	JMP $4116      ; Draw user speed

Tilemap pointers for Msg.Speed values
C3/3C27:	A53A    	; 1
C3/3C29:	A93A    	; 2
C3/3C2B:	AD3A    	; 3
C3/3C2D:	B13A    	; 4
C3/3C2F:	B53A    	; 5
C3/3C31:	B93A    	; 6

Draw Cmd.Set settings
C3/3C33:	AD4D1D  	LDA $1D4D      ; Short mode?
C3/3C36:	3009    	BMI $3C41      ; Branch if so
C3/3C38:	A928    	LDA #$28       ; Color: Gray
C3/3C3A:	204A3C  	JSR $3C4A      ; Draw "Short"
C3/3C3D:	A920    	LDA #$20       ; Color: User's
C3/3C3F:	8012    	BRA $3C53      ; Draw "Window"

Fork: Short mode
C3/3C41:	A920    	LDA #$20       ; Color: User's
C3/3C43:	204A3C  	JSR $3C4A      ; Draw "Short"
C3/3C46:	A928    	LDA #$28       ; Color: Gray
C3/3C48:	8009    	BRA $3C53      ; Draw "Window"

Fork: Draw "Short"
C3/3C4A:	8529    	STA $29        ; Set palette
C3/3C4C:	A02D49  	LDY #$492D     ; Text pointer
C3/3C4F:	20F902  	JSR $02F9      ; Draw "Short"
C3/3C52:	60      	RTS

Fork: Draw "Window"
C3/3C53:	8529    	STA $29        ; Set palette
C3/3C55:	A0FA49  	LDY #$49FA     ; Text pointer
C3/3C58:	20F902  	JSR $02F9      ; Draw "Window"
C3/3C5B:	60      	RTS

Draw Gauge settings
C3/3C5C:	AD4E1D  	LDA $1D4E      ; Gauges on?
C3/3C5F:	1009    	BPL $3C6A      ; Branch if so
C3/3C61:	A928    	LDA #$28       ; Color: Gray
C3/3C63:	20733C  	JSR $3C73      ; Draw "On"
C3/3C66:	A920    	LDA #$20       ; Color: User's
C3/3C68:	8012    	BRA $3C7C      ; Draw "Off"

Fork: Gauges on
C3/3C6A:	A920    	LDA #$20       ; Color: User's
C3/3C6C:	20733C  	JSR $3C73      ; Draw "On"
C3/3C6F:	A928    	LDA #$28       ; Color: Gray
C3/3C71:	8009    	BRA $3C7C      ; Draw "Off"

Fork: Draw "On"
C3/3C73:	8529    	STA $29        ; Set palette
C3/3C75:	A03549  	LDY #$4935     ; Text pointer
C3/3C78:	20F902  	JSR $02F9      ; Draw "On"
C3/3C7B:	60      	RTS

Fork: Draw "Off"
C3/3C7C:	8529    	STA $29        ; Set palette
C3/3C7E:	A03A49  	LDY #$493A     ; Text pointer
C3/3C81:	20F902  	JSR $02F9      ; Draw "Off"
C3/3C84:	60      	RTS

Draw Sound settings
C3/3C85:	AD4E1D  	LDA $1D4E      ; Game options
C3/3C88:	2920    	AND #$20       ; Stereo?
C3/3C8A:	F009    	BEQ $3C95      ; Branch if so
C3/3C8C:	A928    	LDA #$28       ; Color: Gray
C3/3C8E:	209E3C  	JSR $3C9E      ; Draw "Stereo"
C3/3C91:	A920    	LDA #$20       ; Color: User's
C3/3C93:	8012    	BRA $3CA7      ; Draw "Mono"

Fork: Stereo mode
C3/3C95:	A920    	LDA #$20       ; Color: User's
C3/3C97:	209E3C  	JSR $3C9E      ; Draw "Stereo"
C3/3C9A:	A928    	LDA #$28       ; Color: Gray
C3/3C9C:	8009    	BRA $3CA7      ; Draw "Mono"

Fork: Draw "Stereo"
C3/3C9E:	8529    	STA $29        ; Set palette
C3/3CA0:	A04049  	LDY #$4940     ; Text pointer
C3/3CA3:	20F902  	JSR $02F9      ; Draw "Stereo"
C3/3CA6:	60      	RTS

Fork: Draw "Mono"
C3/3CA7:	8529    	STA $29        ; Set palette
C3/3CA9:	A04949  	LDY #$4949     ; Text pointer
C3/3CAC:	20F902  	JSR $02F9      ; Draw "Mono"
C3/3CAF:	60      	RTS

Draw Cursor settings
C3/3CB0:	AD4E1D  	LDA $1D4E      ; Game options
C3/3CB3:	2940    	AND #$40       ; Cursor memory?
C3/3CB5:	F009    	BEQ $3CC0      ; Branch if not
C3/3CB7:	A928    	LDA #$28       ; Color: Gray
C3/3CB9:	20C93C  	JSR $3CC9      ; Draw "Reset"
C3/3CBC:	A920    	LDA #$20       ; Color: User's
C3/3CBE:	8012    	BRA $3CD2      ; Draw "Memory"

Fork: Reset mode
C3/3CC0:	A920    	LDA #$20       ; Color: User's
C3/3CC2:	20C93C  	JSR $3CC9      ; Draw "Reset"
C3/3CC5:	A928    	LDA #$28       ; Color: Gray
C3/3CC7:	8009    	BRA $3CD2      ; Draw "Memory"

Fork: Draw "Reset"
C3/3CC9:	8529    	STA $29        ; Set palette
C3/3CCB:	A0034A  	LDY #$4A03     ; Text pointer
C3/3CCE:	20F902  	JSR $02F9      ; Draw "Reset"
C3/3CD1:	60      	RTS

Fork: Draw "Memory"
C3/3CD2:	8529    	STA $29        ; Set palette
C3/3CD4:	A05049  	LDY #$4950     ; Text pointer
C3/3CD7:	20F902  	JSR $02F9      ; Draw "Memory"
C3/3CDA:	60      	RTS

Draw Reequip settings
C3/3CDB:	AD4E1D  	LDA $1D4E      ; Game options
C3/3CDE:	2910    	AND #$10       ; Optimum mode?
C3/3CE0:	F009    	BEQ $3CEB      ; Branch if so
C3/3CE2:	A928    	LDA #$28       ; Color: Gray
C3/3CE4:	20F43C  	JSR $3CF4      ; Draw "Optimum"
C3/3CE7:	A920    	LDA #$20       ; Color: User's
C3/3CE9:	8012    	BRA $3CFD      ; Draw "Empty"

Fork: Optimum mode
C3/3CEB:	A920    	LDA #$20       ; Color: User's
C3/3CED:	20F43C  	JSR $3CF4      ; Draw "Optimum"
C3/3CF0:	A928    	LDA #$28       ; Color: Gray
C3/3CF2:	8009    	BRA $3CFD      ; Draw "Empty"

Fork: Draw "Optimum"
C3/3CF4:	8529    	STA $29        ; Set palette
C3/3CF6:	A05949  	LDY #$4959     ; Text pointer
C3/3CF9:	20F902  	JSR $02F9      ; Draw "Optimum"
C3/3CFC:	60      	RTS

Fork: Draw "Empty"
C3/3CFD:	8529    	STA $29        ; Set palette
C3/3CFF:	A00B4A  	LDY #$4A0B     ; Text pointer
C3/3D02:	20F902  	JSR $02F9      ; Draw "Empty"
C3/3D05:	60      	RTS

Draw Controller settings
C3/3D06:	AD541D  	LDA $1D54      ; Solo mode?
C3/3D09:	1009    	BPL $3D14      ; Branch if so
C3/3D0B:	A928    	LDA #$28       ; Color: Gray
C3/3D0D:	201D3D  	JSR $3D1D      ; Draw "Single"
C3/3D10:	A920    	LDA #$20       ; Color: User's
C3/3D12:	8012    	BRA $3D26      ; Draw "Multiple"

Fork: Single mode
C3/3D14:	A920    	LDA #$20       ; Color: User's
C3/3D16:	201D3D  	JSR $3D1D      ; Draw "Single"
C3/3D19:	A928    	LDA #$28       ; Color: Gray
C3/3D1B:	8009    	BRA $3D26      ; Draw "Multiple"

Fork: Draw "Single"
C3/3D1D:	8529    	STA $29        ; Set palette
C3/3D1F:	A0134A  	LDY #$4A13     ; Text pointer
C3/3D22:	20F902  	JSR $02F9      ; Draw "Single"
C3/3D25:	60      	RTS

Fork: Draw "Multiple"
C3/3D26:	8529    	STA $29        ; Set palette
C3/3D28:	A06349  	LDY #$4963     ; Text pointer
C3/3D2B:	20F902  	JSR $02F9      ; Draw "Multiple"
C3/3D2E:	60      	RTS

Handle Config changes with D-Pad
C3/3D2F:	7B      	TDC            ; Clear A
C3/3D30:	A54B    	LDA $4B        ; Cursor slot
C3/3D32:	0A      	ASL A          ; Double it
C3/3D33:	AA      	TAX            ; Index it
C3/3D34:	A54A    	LDA $4A        ; On first page?
C3/3D36:	F008    	BEQ $3D40      ; Branch if so
C3/3D38:	DA      	PHX            ; ...
C3/3D39:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/3D3C:	FA      	PLX            ; ...
C3/3D3D:	7C553D  	JMP ($3D55,X)  ; Handle page 2
C3/3D40:	7C433D  	JMP ($3D43,X)  ; Handle page 1

Jump table for updating game options
C3/3D43:	613D    	; Bat.Mode
C3/3D45:	7A3D    	; Bat.Speed
C3/3D47:	AB3D    	; Msg.Speed
C3/3D49:	E83D    	; Cmd.Set
C3/3D4B:	013E    	; Gauge
C3/3D4D:	1A3E    	; Sound
C3/3D4F:	4E3E    	; Cursor
C3/3D51:	6D3E    	; Reequip
C3/3D53:	863E    	; Controller
C3/3D55:	9F3E    	; Mag.Order
C3/3D57:	CD3E    	; Window
C3/3D59:	013F    	; Viewed color
C3/3D5B:	3C3F    	; R
C3/3D5D:	5B3F    	; G
C3/3D5F:	7A3F    	; B

Update Bat.Mode
C3/3D61:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/3D64:	A50B    	LDA $0B        ; Semi-auto keys
C3/3D66:	8901    	BIT #$01       ; Pushing right?
C3/3D68:	D008    	BNE $3D72      ; Branch if so
C3/3D6A:	A908    	LDA #$08       ; Mode: Active
C3/3D6C:	1C4D1D  	TRB $1D4D      ; Set option
C3/3D6F:	4C8C3B  	JMP $3B8C      ; Redraw text
C3/3D72:	A908    	LDA #$08       ; Mode: Wait
C3/3D74:	0C4D1D  	TSB $1D4D      ; Set option
C3/3D77:	4C8C3B  	JMP $3B8C      ; Redraw text

Update Bat.Speed
C3/3D7A:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/3D7D:	AD4D1D  	LDA $1D4D      ; Game options
C3/3D80:	2907    	AND #$07       ; Get Bat.Speed
C3/3D82:	85E0    	STA $E0        ; Memorize it
C3/3D84:	A50B    	LDA $0B        ; Semi-auto keys
C3/3D86:	8901    	BIT #$01       ; Pushing right?
C3/3D88:	F00B    	BEQ $3D95      ; Branch if not

Fork: Bat.Speed +1
C3/3D8A:	A5E0    	LDA $E0        ; Bat.Speed
C3/3D8C:	C905    	CMP #$05       ; Rightmost?
C3/3D8E:	F004    	BEQ $3D94      ; Exit if so
C3/3D90:	E6E0    	INC $E0        ; Speed +1
C3/3D92:	800A    	BRA $3D9E      ; Apply changes
C3/3D94:	60      	RTS

Fork: Bat.Speed -1
C3/3D95:	A5E0    	LDA $E0        ; Leftmost speed?
C3/3D97:	F004    	BEQ $3D9D      ; Exit if so
C3/3D99:	C6E0    	DEC $E0        ; Speed -1
C3/3D9B:	8001    	BRA $3D9E      ; Apply changes
C3/3D9D:	60      	RTS

Fork: Apply Bat.Speed
C3/3D9E:	AD4D1D  	LDA $1D4D      ; Game options
C3/3DA1:	29F8    	AND #$F8       ; Clear Bat.Speed
C3/3DA3:	05E0    	ORA $E0        ; Set chosen speed
C3/3DA5:	8D4D1D  	STA $1D4D      ; Save changes
C3/3DA8:	4CB73B  	JMP $3BB7      ; Redraw values

Update Msg.Speed
C3/3DAB:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/3DAE:	AD4D1D  	LDA $1D4D      ; Game options
C3/3DB1:	2970    	AND #$70       ; Get Msg.Speed
C3/3DB3:	4A      	LSR A          ; Put in b3-b5
C3/3DB4:	4A      	LSR A          ; Put in b2-b4
C3/3DB5:	4A      	LSR A          ; Put in b1-b3
C3/3DB6:	4A      	LSR A          ; Now 0-5
C3/3DB7:	85E0    	STA $E0        ; Memorize it
C3/3DB9:	A50B    	LDA $0B        ; Semi-auto keys
C3/3DBB:	8901    	BIT #$01       ; Pushing right?
C3/3DBD:	F00B    	BEQ $3DCA      ; Branch if not

Fork: Msg.Speed +1
C3/3DBF:	A5E0    	LDA $E0        ; Msg.Speed
C3/3DC1:	C905    	CMP #$05       ; Rightmost?
C3/3DC3:	F004    	BEQ $3DC9      ; Exit if so
C3/3DC5:	E6E0    	INC $E0        ; Speed +1
C3/3DC7:	800A    	BRA $3DD3      ; Apply changes
C3/3DC9:	60      	RTS

Fork: Msg.Speed -1
C3/3DCA:	A5E0    	LDA $E0        ; Leftmost speed?
C3/3DCC:	F004    	BEQ $3DD2      ; Exit if so
C3/3DCE:	C6E0    	DEC $E0        ; Speed -1
C3/3DD0:	8001    	BRA $3DD3      ; Apply changes
C3/3DD2:	60      	RTS

Fork: Apply Msg.Speed
C3/3DD3:	A5E0    	LDA $E0        ; Chosen speed
C3/3DD5:	0A      	ASL A          ; x2
C3/3DD6:	0A      	ASL A          ; x4
C3/3DD7:	0A      	ASL A          ; x8
C3/3DD8:	0A      	ASL A          ; x16
C3/3DD9:	85E0    	STA $E0        ; Save changes
C3/3DDB:	AD4D1D  	LDA $1D4D      ; Game options
C3/3DDE:	298F    	AND #$8F       ; Clear Msg.Speed
C3/3DE0:	05E0    	ORA $E0        ; Set chosen speed
C3/3DE2:	8D4D1D  	STA $1D4D      ; Save changes
C3/3DE5:	4CF23B  	JMP $3BF2      ; Redraw values

Update Cmd.Set mode
C3/3DE8:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/3DEB:	A50B    	LDA $0B        ; Semi-auto keys
C3/3DED:	8901    	BIT #$01       ; Pushing right?
C3/3DEF:	D008    	BNE $3DF9      ; Branch if so
C3/3DF1:	A980    	LDA #$80       ; Mode: Window
C3/3DF3:	1C4D1D  	TRB $1D4D      ; Set option
C3/3DF6:	4C333C  	JMP $3C33      ; Redraw options
C3/3DF9:	A980    	LDA #$80       ; Mode: Short
C3/3DFB:	0C4D1D  	TSB $1D4D      ; Set option
C3/3DFE:	4C333C  	JMP $3C33      ; Redraw options

Update gauge mode
C3/3E01:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/3E04:	A50B    	LDA $0B        ; Semi-auto keys
C3/3E06:	8901    	BIT #$01       ; Pushing right?
C3/3E08:	D008    	BNE $3E12      ; Branch if so
C3/3E0A:	A980    	LDA #$80       ; Gauge: On
C3/3E0C:	1C4E1D  	TRB $1D4E      ; Set option
C3/3E0F:	4C5C3C  	JMP $3C5C      ; Redraw options
C3/3E12:	A980    	LDA #$80       ; Gauge: Off
C3/3E14:	0C4E1D  	TSB $1D4E      ; Set option
C3/3E17:	4C5C3C  	JMP $3C5C      ; Redraw options

Update sound mode
C3/3E1A:	A50B    	LDA $0B        ; Semi-auto keys
C3/3E1C:	8901    	BIT #$01       ; Pushing right?
C3/3E1E:	D00F    	BNE $3E2F      ; Branch if so
C3/3E20:	7B      	TDC            ; Volume: Stereo
C3/3E21:	203F3E  	JSR $3E3F      ; Adjust volume
C3/3E24:	A920    	LDA #$20       ; Mode: Stereo
C3/3E26:	1C4E1D  	TRB $1D4E      ; Set option
C3/3E29:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/3E2C:	4C853C  	JMP $3C85      ; Redraw options
C3/3E2F:	A9FF    	LDA #$FF       ; Volume: Mono
C3/3E31:	203F3E  	JSR $3E3F      ; Adjust volume
C3/3E34:	A920    	LDA #$20       ; Mono flag
C3/3E36:	0C4E1D  	TSB $1D4E      ; Set mono mode
C3/3E39:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/3E3C:	4C853C  	JMP $3C85      ; Redraw options

Adjust volume based on sound mode (stereo = 0)
C3/3E3F:	8F011300	STA $001301    ; Set sound mode
C3/3E43:	A9F3    	LDA #$F3       ; SPC code: $0D61
C3/3E45:	8F001300	STA $001300    ; Set SPC command
C3/3E49:	220400C5	JSL $C50004    ; Update ports
C3/3E4D:	60      	RTS

Update Cursor mode
C3/3E4E:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/3E51:	A50B    	LDA $0B        ; Semi-auto keys
C3/3E53:	8901    	BIT #$01       ; Pushing right?
C3/3E55:	D00B    	BNE $3E62      ; Branch if so
C3/3E57:	20F748  	JSR $48F7      ; Forget positions
C3/3E5A:	A940    	LDA #$40       ; Mode: Reset
C3/3E5C:	1C4E1D  	TRB $1D4E      ; Set option
C3/3E5F:	4CB03C  	JMP $3CB0      ; Redraw options
C3/3E62:	A940    	LDA #$40       ; Mode: Memory
C3/3E64:	0C4E1D  	TSB $1D4E      ; Set option
C3/3E67:	206870  	JSR $7068      ; Reset positions
C3/3E6A:	4CB03C  	JMP $3CB0      ; Redraw options

Update Reequip mode
C3/3E6D:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/3E70:	A50B    	LDA $0B        ; Semi-auto keys
C3/3E72:	8901    	BIT #$01       ; Pushing right?
C3/3E74:	D008    	BNE $3E7E      ; Branch if so
C3/3E76:	A910    	LDA #$10       ; Mode: Optimum
C3/3E78:	1C4E1D  	TRB $1D4E      ; Set option
C3/3E7B:	4CDB3C  	JMP $3CDB      ; Redraw options
C3/3E7E:	A910    	LDA #$10       ; Mode: Empty
C3/3E80:	0C4E1D  	TSB $1D4E      ; Set option
C3/3E83:	4CDB3C  	JMP $3CDB      ; Redraw options

Update Controller mode
C3/3E86:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/3E89:	A50B    	LDA $0B        ; Semi-auto keys
C3/3E8B:	8901    	BIT #$01       ; Pushing right?
C3/3E8D:	D008    	BNE $3E97      ; Branch if so
C3/3E8F:	A980    	LDA #$80       ; Mode: Single
C3/3E91:	1C541D  	TRB $1D54      ; Set option
C3/3E94:	4C063D  	JMP $3D06      ; Redraw options
C3/3E97:	A980    	LDA #$80       ; Mode: Multiple
C3/3E99:	0C541D  	TSB $1D54      ; Set option
C3/3E9C:	4C063D  	JMP $3D06      ; Redraw options

Update Mag.Order
C3/3E9F:	AD541D  	LDA $1D54      ; Game options
C3/3EA2:	2907    	AND #$07       ; Get Mag.Order
C3/3EA4:	85E0    	STA $E0        ; Memorize it
C3/3EA6:	A50B    	LDA $0B        ; Semi-auto keys
C3/3EA8:	8901    	BIT #$01       ; Pushing right?
C3/3EAA:	F00B    	BEQ $3EB7      ; Branch if not

Fork: Mag.Order +1
C3/3EAC:	A5E0    	LDA $E0        ; Mag.Order
C3/3EAE:	C905    	CMP #$05       ; Rightmost?
C3/3EB0:	F004    	BEQ $3EB6      ; Exit if so
C3/3EB2:	E6E0    	INC $E0        ; Order +1
C3/3EB4:	800A    	BRA $3EC0      ; Apply changes
C3/3EB6:	60      	RTS

Fork: Mag.Order -1
C3/3EB7:	A5E0    	LDA $E0        ; On "1" now?
C3/3EB9:	F004    	BEQ $3EBF      ; Exit if so
C3/3EBB:	C6E0    	DEC $E0        ; Order -1
C3/3EBD:	8001    	BRA $3EC0      ; Apply changes
C3/3EBF:	60      	RTS

Fork: Apply Mag.Order
C3/3EC0:	AD541D  	LDA $1D54      ; Game options
C3/3EC3:	29F8    	AND #$F8       ; Clear Mag.Order
C3/3EC5:	05E0    	ORA $E0        ; Set chosen one
C3/3EC7:	8D541D  	STA $1D54      ; Save changes
C3/3ECA:	4CFD3F  	JMP $3FFD      ; Redraw text

Handle wallpaper selection
C3/3ECD:	AD4E1D  	LDA $1D4E      ; Game options
C3/3ED0:	290F    	AND #$0F       ; Get wallpaper
C3/3ED2:	85E0    	STA $E0        ; Memorize it
C3/3ED4:	A50B    	LDA $0B        ; Semi-auto keys
C3/3ED6:	8901    	BIT #$01       ; Pushing right?
C3/3ED8:	F00B    	BEQ $3EE5      ; Branch if not

Fork: Pushing right
C3/3EDA:	A5E0    	LDA $E0        ; Wallpaper
C3/3EDC:	C907    	CMP #$07       ; Rightmost?
C3/3EDE:	F004    	BEQ $3EE4      ; Exit if so
C3/3EE0:	E6E0    	INC $E0        ; Skin number +1
C3/3EE2:	800A    	BRA $3EEE      ; Apply changes
C3/3EE4:	60      	RTS

Fork: Pushing left
C3/3EE5:	A5E0    	LDA $E0        ; On "1" now?
C3/3EE7:	F004    	BEQ $3EED      ; Exit if so
C3/3EE9:	C6E0    	DEC $E0        ; Skin number -1
C3/3EEB:	8001    	BRA $3EEE      ; Apply changes
C3/3EED:	60      	RTS

Fork: Apply wallpaper
C3/3EEE:	AD4E1D  	LDA $1D4E      ; Game options
C3/3EF1:	29F0    	AND #$F0       ; Clear skin
C3/3EF3:	05E0    	ORA $E0        ; Set chosen one
C3/3EF5:	8D4E1D  	STA $1D4E      ; Save changes
C3/3EF8:	20EA40  	JSR $40EA      ; Redraw values
C3/3EFB:	20873A  	JSR $3A87      ; Refresh skin
C3/3EFE:	4CC341  	JMP $41C3      ; Draw RGB info

Change viewed color in Config
C3/3F01:	AD541D  	LDA $1D54      ; Game options
C3/3F04:	2938    	AND #$38       ; Viewed color
C3/3F06:	4A      	LSR A          ; Put in b2-b4
C3/3F07:	4A      	LSR A          ; Put in b1-b3
C3/3F08:	4A      	LSR A          ; Now 0-7
C3/3F09:	85E0    	STA $E0        ; Memorize it
C3/3F0B:	A50B    	LDA $0B        ; Semi-auto keys
C3/3F0D:	8901    	BIT #$01       ; Pushing right?
C3/3F0F:	F00B    	BEQ $3F1C      ; Branch if not

Fork: Move to next color
C3/3F11:	A5E0    	LDA $E0        ; Viewed color
C3/3F13:	C907    	CMP #$07       ; Rightmost?
C3/3F15:	F004    	BEQ $3F1B      ; Exit if so
C3/3F17:	E6E0    	INC $E0        ; Color number +1
C3/3F19:	800A    	BRA $3F25      ; Apply changes
C3/3F1B:	60      	RTS

Fork: Move to preceding color
C3/3F1C:	A5E0    	LDA $E0        ; Editing font?
C3/3F1E:	F004    	BEQ $3F24      ; Exit if so
C3/3F20:	C6E0    	DEC $E0        ; Color number -1
C3/3F22:	8001    	BRA $3F25      ; Apply changes
C3/3F24:	60      	RTS

Fork: Apply selection
C3/3F25:	A5E0    	LDA $E0        ; Viewed color
C3/3F27:	0A      	ASL A          ; Put in b1-b3
C3/3F28:	0A      	ASL A          ; Put in b2-b4
C3/3F29:	0A      	ASL A          ; Put in b3-b5
C3/3F2A:	85E0    	STA $E0        ; Save changes
C3/3F2C:	AD541D  	LDA $1D54      ; Game options
C3/3F2F:	29C7    	AND #$C7       ; Clear vwd color
C3/3F31:	05E0    	ORA $E0        ; Set new one
C3/3F33:	8D541D  	STA $1D54      ; Save changes
C3/3F36:	203341  	JSR $4133      ; Redraw arrow
C3/3F39:	4CC341  	JMP $41C3      ; Draw RGB info

Update red component of font or skin color
C3/3F3C:	20FE41  	JSR $41FE      ; Separate RGB
C3/3F3F:	A50B    	LDA $0B        ; Semi-auto keys
C3/3F41:	8901    	BIT #$01       ; Pushing right?
C3/3F43:	F00A    	BEQ $3F4F      ; Branch if not
C3/3F45:	A5E2    	LDA $E2        ; Red
C3/3F47:	C91F    	CMP #$1F       ; 31?
C3/3F49:	F00A    	BEQ $3F55      ; Branch if so
C3/3F4B:	E6E2    	INC $E2        ; Red +1
C3/3F4D:	8006    	BRA $3F55      ; Apply changes
C3/3F4F:	A5E2    	LDA $E2        ; Red
C3/3F51:	F002    	BEQ $3F55      ; Branch if 0
C3/3F53:	C6E2    	DEC $E2        ; Red -1
C3/3F55:	202142  	JSR $4221      ; Merge RGB
C3/3F58:	4CC43F  	JMP $3FC4      ; Apply changes

Update green component of font or skin color
C3/3F5B:	20FE41  	JSR $41FE      ; Separate RGB
C3/3F5E:	A50B    	LDA $0B        ; Semi-auto keys
C3/3F60:	8901    	BIT #$01       ; Pushing right?
C3/3F62:	F00A    	BEQ $3F6E      ; Branch if not
C3/3F64:	A5E1    	LDA $E1        ; Green
C3/3F66:	C91F    	CMP #$1F       ; 31?
C3/3F68:	F00A    	BEQ $3F74      ; Branch if so
C3/3F6A:	E6E1    	INC $E1        ; Green +1
C3/3F6C:	8006    	BRA $3F74      ; Apply changes
C3/3F6E:	A5E1    	LDA $E1        ; Green
C3/3F70:	F002    	BEQ $3F74      ; Branch if 0
C3/3F72:	C6E1    	DEC $E1        ; Green -1
C3/3F74:	202142  	JSR $4221      ; Merge RGB
C3/3F77:	4CC43F  	JMP $3FC4      ; Apply changes

Update blue component of font or skin color
C3/3F7A:	20FE41  	JSR $41FE      ; Separate RGB
C3/3F7D:	A50B    	LDA $0B        ; Semi-auto keys
C3/3F7F:	8901    	BIT #$01       ; Pushing right?
C3/3F81:	F00A    	BEQ $3F8D      ; Branch if not
C3/3F83:	A5E0    	LDA $E0        ; Blue
C3/3F85:	C91F    	CMP #$1F       ; 31?
C3/3F87:	F00A    	BEQ $3F93      ; Branch if so
C3/3F89:	E6E0    	INC $E0        ; Blue +1
C3/3F8B:	8006    	BRA $3F93      ; Apply changes
C3/3F8D:	A5E0    	LDA $E0        ; Blue
C3/3F8F:	F002    	BEQ $3F93      ; Branch if 0
C3/3F91:	C6E0    	DEC $E0        ; Blue -1
C3/3F93:	202142  	JSR $4221      ; Merge RGB
C3/3F96:	4CC43F  	JMP $3FC4      ; Apply changes

Apply player's font color
C3/3F99:	C220    	REP #$20       ; 16-bit A
C3/3F9B:	AD551D  	LDA $1D55      ; User font color
C3/3F9E:	8F4F307E	STA $7E304F    ; Set for FWF
C3/3FA2:	8F73307E	STA $7E3073    ; Set VWF color A
C3/3FA6:	8F77307E	STA $7E3077    ; Set VWF color B
C3/3FAA:	E220    	SEP #$20       ; 8-bit A
C3/3FAC:	60      	RTS

Apply player's skin colors after changes
C3/3FAD:	A600    	LDX $00        ; Dst index: 0
C3/3FAF:	C220    	REP #$20       ; 16-bit A
C3/3FB1:	B9571D  	LDA $1D57,Y    ; Player color
C3/3FB4:	9F2B317E	STA $7E312B,X  ; Put in palette
C3/3FB8:	C8      	INY            ; Src index +1
C3/3FB9:	C8      	INY            ; Src index +1
C3/3FBA:	E8      	INX            ; Dst index +1
C3/3FBB:	E8      	INX            ; Dst index +1
C3/3FBC:	E00E00  	CPX #$000E     ; Done 7 colors?
C3/3FBF:	D0F0    	BNE $3FB1      ; Loop if not
C3/3FC1:	E220    	SEP #$20       ; 8-bit A
C3/3FC3:	60      	RTS

Apply player's skin or font colors after changes
C3/3FC4:	7B      	TDC            ; Clear A
C3/3FC5:	AD4E1D  	LDA $1D4E      ; Game options
C3/3FC8:	290F    	AND #$0F       ; Get wallpaper
C3/3FCA:	8D0242  	STA $4202      ; Set multiplicand
C3/3FCD:	A90E    	LDA #$0E       ; Palette size
C3/3FCF:	8D0342  	STA $4203      ; Set multiplier
C3/3FD2:	AD541D  	LDA $1D54      ; Game options
C3/3FD5:	2938    	AND #$38       ; Viewed color
C3/3FD7:	F019    	BEQ $3FF2      ; Branch if font
C3/3FD9:	4A      	LSR A          ; Put in b2-b4
C3/3FDA:	4A      	LSR A          ; Put in b1-b3
C3/3FDB:	18      	CLC            ; Prepare ADC
C3/3FDC:	6D1642  	ADC $4216      ; Add product
C3/3FDF:	AA      	TAX            ; Index sum
C3/3FE0:	A59A    	LDA $9A        ; New color LB
C3/3FE2:	9D551D  	STA $1D55,X    ; Set as user's
C3/3FE5:	A59B    	LDA $9B        ; New color HB
C3/3FE7:	9D561D  	STA $1D56,X    ; Set as user's
C3/3FEA:	AC1642  	LDY $4216      ; Palette index
C3/3FED:	20AD3F  	JSR $3FAD      ; Recolor skin
C3/3FF0:	8008    	BRA $3FFA      ; Redraw RGB info

Fork: Font
C3/3FF2:	A49A    	LDY $9A        ; Updated color
C3/3FF4:	8C551D  	STY $1D55      ; Put in options
C3/3FF7:	20993F  	JSR $3F99      ; Put in palettes
C3/3FFA:	4CC341  	JMP $41C3      ; Redraw RGB info

Draw Mag.Order settings
C3/3FFD:	A928    	LDA #$28       ; Palette 2
C3/3FFF:	8529    	STA $29        ; Color: Gray
C3/4001:	A0A54A  	LDY #$4AA5     ; Text pointer
C3/4004:	20F902  	JSR $02F9      ; Draw 1-6 in gray
C3/4007:	A920    	LDA #$20       ; Palette 0
C3/4009:	8529    	STA $29        ; Color: User's
C3/400B:	7B      	TDC            ; Clear A
C3/400C:	AD541D  	LDA $1D54      ; Game options
C3/400F:	2907    	AND #$07       ; Get Mag.Order
C3/4011:	0A      	ASL A          ; Double it
C3/4012:	AA      	TAX            ; Index it
C3/4013:	C220    	REP #$20       ; 16-bit A
C3/4015:	BF2F40C3	LDA $C3402F,X  ; Tilemap ptr
C3/4019:	85F7    	STA $F7        ; Set position
C3/401B:	E220    	SEP #$20       ; 8-bit A
C3/401D:	AD541D  	LDA $1D54      ; Game options
C3/4020:	2907    	AND #$07       ; Get Mag.Order
C3/4022:	18      	CLC            ; ...
C3/4023:	69B5    	ADC #$B5       ; Convert to text
C3/4025:	85F9    	STA $F9        ; Add to string
C3/4027:	64FA    	STZ $FA        ; End string
C3/4029:	201641  	JSR $4116      ; Draw user value
C3/402C:	4C3B40  	JMP $403B      ; Draw spell types

Tilemap pointers for Mag.Order values
C3/402F:	A541    	; 1
C3/4031:	A941    	; 2
C3/4033:	AD41    	; 3
C3/4035:	B141    	; 4
C3/4037:	B541    	; 5
C3/4039:	B941    	; 6

Draw all three Mag.Order spell types
C3/403B:	7B      	TDC            ; Clear A
C3/403C:	8F959E7E	STA $7E9E95    ; Set string end
C3/4040:	7B      	TDC            ; ...
C3/4041:	AD541D  	LDA $1D54      ; Game options
C3/4044:	2907    	AND #$07       ; Get Mag.Order
C3/4046:	0A      	ASL A          ; x2
C3/4047:	0A      	ASL A          ; x4
C3/4048:	AA      	TAX            ; Index it
C3/4049:	A00300  	LDY #$0003     ; Strings: 3
C3/404C:	5A      	PHY            ; Save counter
C3/404D:	DA      	PHX            ; Save index
C3/404E:	205840  	JSR $4058      ; Draw string
C3/4051:	FA      	PLX            ; String index
C3/4052:	7A      	PLY            ; Strings left
C3/4053:	E8      	INX            ; Point to next
C3/4054:	88      	DEY            ; One less left
C3/4055:	D0F5    	BNE $404C      ; Loop till last
C3/4057:	60      	RTS

Draw current Mag.Order spell type
C3/4058:	7B      	TDC            ; Clear A
C3/4059:	BFD240C3	LDA $C340D2,X  ; Text pointer
C3/405D:	AA      	TAX            ; Index it
C3/405E:	BFD34AC3	LDA $C34AD3,X  ; Spell icon
C3/4062:	8F8B9E7E	STA $7E9E8B    ; To string
C3/4066:	BFD44AC3	LDA $C34AD4,X  ; Letter 1
C3/406A:	8F8C9E7E	STA $7E9E8C    ; To string
C3/406E:	BFD54AC3	LDA $C34AD5,X  ; Letter 2
C3/4072:	8F8D9E7E	STA $7E9E8D    ; To string
C3/4076:	BFD64AC3	LDA $C34AD6,X  ; Letter 3
C3/407A:	8F8E9E7E	STA $7E9E8E    ; To string
C3/407E:	BFD74AC3	LDA $C34AD7,X  ; Letter 4
C3/4082:	8F8F9E7E	STA $7E9E8F    ; To string
C3/4086:	BFD84AC3	LDA $C34AD8,X  ; Letter 5
C3/408A:	8F909E7E	STA $7E9E90    ; To string
C3/408E:	BFD94AC3	LDA $C34AD9,X  ; Letter 6
C3/4092:	8F919E7E	STA $7E9E91    ; To string
C3/4096:	BFDA4AC3	LDA $C34ADA,X  ; Letter 7
C3/409A:	8F929E7E	STA $7E9E92    ; To string
C3/409E:	BFDB4AC3	LDA $C34ADB,X  ; Letter 8
C3/40A2:	8F939E7E	STA $7E9E93    ; To string
C3/40A6:	BFDC4AC3	LDA $C34ADC,X  ; Letter 9
C3/40AA:	8F949E7E	STA $7E9E94    ; To string
C3/40AE:	7B      	TDC            ; ...
C3/40AF:	88      	DEY            ; Lines left -1
C3/40B0:	98      	TYA            ; Put it in A
C3/40B1:	0A      	ASL A          ; Double it
C3/40B2:	AA      	TAX            ; Index it
C3/40B3:	C220    	REP #$20       ; 16-bit A
C3/40B5:	BFCC40C3	LDA $C340CC,X  ; Tilemap ptr
C3/40B9:	8F899E7E	STA $7E9E89    ; Set position
C3/40BD:	E220    	SEP #$20       ; 8-bit A
C3/40BF:	A0899E  	LDY #$9E89     ; 7E/9E89
C3/40C2:	84E7    	STY $E7        ; Set src LBs
C3/40C4:	A97E    	LDA #$7E       ; Bank: 7E
C3/40C6:	85E9    	STA $E9        ; Set src HB
C3/40C8:	20FF02  	JSR $02FF      ; Draw string
C3/40CB:	60      	RTS

Tilemap pointers for Mag.Order strings
C3/40CC:	2943    	; Spell type C
C3/40CE:	A942    	; Spell type B
C3/40D0:	2942    	; Spell type A

Relative pointers to Mag.Order strings
C3/40D2:	00 0A 14	; Healing, Attack, Effect
C3/40D5:	00      	; ...
C3/40D6:	00 14 0A	; Healing, Effect, Attack
C3/40D9:	00      	; ...
C3/40DA:	0A 14 00	; Attack, Effect, Healing
C3/40DD:	00      	; ...
C3/40DE:	0A 00 14	; Attack, Healing, Effect
C3/40E1:	00      	; ...
C3/40E2:	14 00 0A	; Effect, Healing, Attack
C3/40E5:	00      	; ...
C3/40E6:	14 0A 00	; Effect, Attack, Healing
C3/40E9:	00      	; ...

Draw wallpaper values
C3/40EA:	A928    	LDA #$28       ; Palette 2
C3/40EC:	8529    	STA $29        ; Color: Gray
C3/40EE:	A0934A  	LDY #$4A93     ; Text pointer
C3/40F1:	20F902  	JSR $02F9      ; Draw 1-8 in gray
C3/40F4:	A920    	LDA #$20       ; Palette 0
C3/40F6:	8529    	STA $29        ; Color: User's
C3/40F8:	7B      	TDC            ; Clear A
C3/40F9:	AD4E1D  	LDA $1D4E      ; Game options
C3/40FC:	290F    	AND #$0F       ; Get wallpaper
C3/40FE:	0A      	ASL A          ; Double it
C3/40FF:	AA      	TAX            ; Index it
C3/4100:	C220    	REP #$20       ; 16-bit A
C3/4102:	BF2341C3	LDA $C34123,X  ; Tilemap ptr
C3/4106:	85F7    	STA $F7        ; Set position
C3/4108:	E220    	SEP #$20       ; 8-bit A
C3/410A:	AD4E1D  	LDA $1D4E      ; Game options
C3/410D:	290F    	AND #$0F       ; Get wallpaper
C3/410F:	18      	CLC            ; ...
C3/4110:	69B5    	ADC #$B5       ; Convert to text
C3/4112:	85F9    	STA $F9        ; Add to string
C3/4114:	64FA    	STZ $FA        ; End string
C3/4116:	A0F700  	LDY #$00F7     ; 00/00F7
C3/4119:	84E7    	STY $E7        ; Set src LBs
C3/411B:	A900    	LDA #$00       ; Bank: 00
C3/411D:	85E9    	STA $E9        ; Set src HB
C3/411F:	20FF02  	JSR $02FF      ; Draw user value
C3/4122:	60      	RTS

Tilemap pointers for wallpaper values
C3/4123:	A543    	; 1
C3/4125:	A943    	; 2
C3/4127:	AD43    	; 3
C3/4129:	B143    	; 4
C3/412B:	B543    	; 5
C3/412D:	B943    	; 6
C3/412F:	BD43    	; 7
C3/4131:	C143    	; 8

Draw wallpaper palette and arrow in Config
C3/4133:	A93C    	LDA #$3C       ; Palette 7
C3/4135:	8529    	STA $29        ; Set tile info
C3/4137:	A0C94A  	LDY #$4AC9     ; Text pointer
C3/413A:	20F902  	JSR $02F9      ; Draw palette
C3/413D:	A09D41  	LDY #$419D     ; Text pointer
C3/4140:	20F902  	JSR $02F9      ; Erase arrow
C3/4143:	7B      	TDC            ; Clear A
C3/4144:	AD541D  	LDA $1D54      ; Game options
C3/4147:	2938    	AND #$38       ; Viewed color
C3/4149:	F026    	BEQ $4171      ; Branch if font
C3/414B:	4A      	LSR A          ; Put in b2-b4
C3/414C:	4A      	LSR A          ; Put in b1-b3
C3/414D:	AA      	TAX            ; Index it
C3/414E:	A920    	LDA #$20       ; Palette 0
C3/4150:	8529    	STA $29        ; Color: User's
C3/4152:	C220    	REP #$20       ; 16-bit A
C3/4154:	BF8D41C3	LDA $C3418D,X  ; Text pointer
C3/4158:	85E7    	STA $E7        ; Set src LBs
C3/415A:	E220    	SEP #$20       ; 8-bit A
C3/415C:	A9C3    	LDA #$C3       ; Bank: C3
C3/415E:	85E9    	STA $E9        ; Set src HB
C3/4160:	20FF02  	JSR $02FF      ; Draw arrow
C3/4163:	A928    	LDA #$28       ; Palette 2
C3/4165:	8529    	STA $29        ; Color: Gray
C3/4167:	207F41  	JSR $417F      ; Draw "Font"
C3/416A:	A920    	LDA #$20       ; Palette 0
C3/416C:	8529    	STA $29        ; Color: User's
C3/416E:	4C8641  	JMP $4186      ; Draw "Window"

Fork: Viewing font
C3/4171:	A920    	LDA #$20       ; Palette 0
C3/4173:	8529    	STA $29        ; Color: User's
C3/4175:	207F41  	JSR $417F      ; Draw "Font"
C3/4178:	A928    	LDA #$28       ; Palette 2
C3/417A:	8529    	STA $29        ; Color: Gray
C3/417C:	4C8641  	JMP $4186      ; Draw "Window"

Fork: Draw "Font"
C3/417F:	A0B34A  	LDY #$4AB3     ; Text pointer
C3/4182:	20F902  	JSR $02F9      ; Draw "Font"
C3/4185:	60      	RTS

Fork: Draw "Window"
C3/4186:	A0BA4A  	LDY #$4ABA     ; Text pointer
C3/4189:	20F902  	JSR $02F9      ; Draw "Window"
C3/418C:	60      	RTS

Text pointers for color selection arrow
C3/418D:	9D41    	; Font...
C3/418F:	A741    	; Window 1
C3/4191:	AB41    	; Window 2
C3/4193:	AF41    	; Window 3
C3/4195:	B341    	; Window 4
C3/4197:	B741    	; Window 5
C3/4199:	BB41    	; Window 6
C3/419B:	BF41    	; Window 7

Positioned spaces for blanking color selection arrow
C3/419D:	F544 FFFFFFFFFFFFFF00

Positioned arrows for wallpaper colors
C3/41A7:	F544 D400	; Color 1
C3/41AB:	F744 D400	; Color 2
C3/41AF:	F944 D400	; Color 3
C3/41B3:	FB44 D400	; Color 4
C3/41B7:	FD44 D400	; Color 5
C3/41BB:	FF44 D400	; Color 6
C3/41BF:	0145 D400	; Color 7

Draw RGB gauges and values in Config menu
C3/41C3:	205039  	JSR $3950      ; Reset gauges
C3/41C6:	7B      	TDC            ; Clear A
C3/41C7:	AD4E1D  	LDA $1D4E      ; Game options
C3/41CA:	290F    	AND #$0F       ; Get wallpaper
C3/41CC:	8D0242  	STA $4202      ; Set multiplicand
C3/41CF:	A90E    	LDA #$0E       ; Palette size
C3/41D1:	8D0342  	STA $4203      ; Set multiplier
C3/41D4:	AD541D  	LDA $1D54      ; Game options
C3/41D7:	2938    	AND #$38       ; Viewed color
C3/41D9:	F00C    	BEQ $41E7      ; Branch if font
C3/41DB:	4A      	LSR A          ; Put in b2-b4
C3/41DC:	4A      	LSR A          ; Put in b1-b3
C3/41DD:	18      	CLC            ; ...
C3/41DE:	6D1642  	ADC $4216      ; Add product
C3/41E1:	AA      	TAX            ; Index sum
C3/41E2:	BC551D  	LDY $1D55,X    ; Skin color
C3/41E5:	8003    	BRA $41EA      ; Skip a line
C3/41E7:	AC551D  	LDY $1D55      ; Font color
C3/41EA:	849A    	STY $9A        ; Memorize it
C3/41EC:	20FE41  	JSR $41FE      ; Separate RGB
C3/41EF:	206342  	JSR $4263      ; Draw B info
C3/41F2:	20FE41  	JSR $41FE      ; Separate RGB
C3/41F5:	205042  	JSR $4250      ; Draw G info
C3/41F8:	20FE41  	JSR $41FE      ; Separate RGB
C3/41FB:	4C3D42  	JMP $423D      ; Draw R info

Separate RGB components for color in Config menu
C3/41FE:	A49A    	LDY $9A        ; Color
C3/4200:	84E7    	STY $E7        ; Memorize it
C3/4202:	A5E7    	LDA $E7        ; Color LB
C3/4204:	291F    	AND #$1F       ; Get red
C3/4206:	85E2    	STA $E2        ; Memorize it
C3/4208:	A5E8    	LDA $E8        ; Color HB
C3/420A:	297C    	AND #$7C       ; Get blue
C3/420C:	4A      	LSR A          ; Shift bits
C3/420D:	4A      	LSR A          ; Now 0-31
C3/420E:	85E0    	STA $E0        ; Memorize it
C3/4210:	C220    	REP #$20       ; 16-bit A
C3/4212:	A5E7    	LDA $E7        ; Color
C3/4214:	29E003  	AND #$03E0     ; Get green
C3/4217:	4A      	LSR A          ; 2
C3/4218:	4A      	LSR A          ; 4
C3/4219:	4A      	LSR A          ; 8
C3/421A:	4A      	LSR A          ; 16
C3/421B:	4A      	LSR A          ; Now 0-31
C3/421C:	E220    	SEP #$20       ; 8-bit A
C3/421E:	85E1    	STA $E1        ; Memorize it
C3/4220:	60      	RTS

Merge RGB components of updated color
C3/4221:	A5E0    	LDA $E0        ; Blue
C3/4223:	0A      	ASL A          ; x2
C3/4224:	0A      	ASL A          ; x4
C3/4225:	85E8    	STA $E8        ; Memorize it
C3/4227:	A5E2    	LDA $E2        ; Red
C3/4229:	85E7    	STA $E7        ; Memorize it
C3/422B:	7B      	TDC            ; Clear A
C3/422C:	A5E1    	LDA $E1        ; Green
C3/422E:	C220    	REP #$20       ; 16-bit A
C3/4230:	0A      	ASL A          ; x2
C3/4231:	0A      	ASL A          ; x4
C3/4232:	0A      	ASL A          ; x8
C3/4233:	0A      	ASL A          ; x16
C3/4234:	0A      	ASL A          ; x32
C3/4235:	05E7    	ORA $E7        ; Add R&B
C3/4237:	8D9A00  	STA $009A      ; Memorize it
C3/423A:	E220    	SEP #$20       ; 8-bit A
C3/423C:	60      	RTS

Draw value and fill gauge for red component
C3/423D:	C220    	REP #$20       ; 16-bit A
C3/423F:	A92F45  	LDA #$452F     ; Tilemap ptr
C3/4242:	8F899E7E	STA $7E9E89    ; Set gauge pos
C3/4246:	E220    	SEP #$20       ; 8-bit A
C3/4248:	A5E2    	LDA $E2        ; Red value
C3/424A:	A22945  	LDX #$4529     ; Tilemap ptr
C3/424D:	4C7642  	JMP $4276      ; Draw text

Draw value and fill gauge for green component
C3/4250:	C220    	REP #$20       ; 16-bit A
C3/4252:	A9AF45  	LDA #$45AF     ; Tilemap ptr
C3/4255:	8F899E7E	STA $7E9E89    ; Set gauge pos
C3/4259:	E220    	SEP #$20       ; 8-bit A
C3/425B:	A5E1    	LDA $E1        ; Green value
C3/425D:	A2A945  	LDX #$45A9     ; Tilemap ptr
C3/4260:	4C7642  	JMP $4276      ; Draw text

Draw value and fill gauge for blue component
C3/4263:	C220    	REP #$20       ; 16-bit A
C3/4265:	A92F46  	LDA #$462F     ; Tilemap ptr
C3/4268:	8F899E7E	STA $7E9E89    ; Set gauge pos
C3/426C:	E220    	SEP #$20       ; 8-bit A
C3/426E:	A5E0    	LDA $E0        ; Blue value
C3/4270:	A22946  	LDX #$4629     ; Tilemap ptr
C3/4273:	4C7642  	JMP $4276      ; Draw text

Draw value and fill gauge for color component
C3/4276:	48      	PHA            ; Save value
C3/4277:	48      	PHA            ; Do it again
C3/4278:	DA      	PHX            ; Save position
C3/4279:	20E004  	JSR $04E0      ; Convert value
C3/427C:	FA      	PLX            ; Text position
C3/427D:	A920    	LDA #$20       ; Palette 0
C3/427F:	8529    	STA $29        ; Color: User's
C3/4281:	20B604  	JSR $04B6      ; Draw 2 digits
C3/4284:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/4287:	8E8121  	STX $2181      ; Set WRAM LBs
C3/428A:	68      	PLA            ; Color value
C3/428B:	EB      	XBA            ; Switch to HB
C3/428C:	A500    	LDA $00        ; Clear it
C3/428E:	EB      	XBA            ; Switch to LB
C3/428F:	4A      	LSR A          ; 2
C3/4290:	4A      	LSR A          ; 4
C3/4291:	AA      	TAX            ; Set counter
C3/4292:	F008    	BEQ $429C      ; Branch if 0
C3/4294:	A9F8    	LDA #$F8       ; Full tile char
C3/4296:	8D8021  	STA $2180      ; Add to string
C3/4299:	CA      	DEX            ; One less tile
C3/429A:	D0F8    	BNE $4294      ; Loop till last
C3/429C:	68      	PLA            ; Color component
C3/429D:	2903    	AND #$03       ; Extremity size
C3/429F:	AA      	TAX            ; Index it
C3/42A0:	BFBE42C3	LDA $C342BE,X  ; Partial tile
C3/42A4:	8D8021  	STA $2180      ; Add to string
C3/42A7:	9C8021  	STZ $2180      ; End string
C3/42AA:	A930    	LDA #$30       ; Palette 4
C3/42AC:	8529    	STA $29        ; Color: Gray
C3/42AE:	4CB142  	JMP $42B1      ; ...
C3/42B1:	A0899E  	LDY #$9E89     ; 7E/9E89
C3/42B4:	84E7    	STY $E7        ; Set src LBs
C3/42B6:	A97E    	LDA #$7E       ; Bank: 7E
C3/42B8:	85E9    	STA $E9        ; Set src HB
C3/42BA:	20FF02  	JSR $02FF      ; Draw gauge
C3/42BD:	60      	RTS

Text characters for filling color gauge
C3/42BE:	F0      	; Empty tile
C3/42BF:	F2      	; 1/4 full
C3/42C0:	F4      	; 2/4 full
C3/42C1:	F6      	; 3/4 full

47: Initialize Cmd.Set menu
C3/42C2:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/42C5:	202C44  	JSR $442C      ; Draw menu
C3/42C8:	206F46  	JSR $466F      ; Set to shift text
C3/42CB:	20B645  	JSR $45B6      ; Load navig data
C3/42CE:	20BF45  	JSR $45BF      ; Relocate cursor
C3/42D1:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/42D4:	A901    	LDA #$01       ; C3/1D7E
C3/42D6:	8526    	STA $26        ; Next: Fade-in
C3/42D8:	A948    	LDA #$48       ; C3/42DF
C3/42DA:	8527    	STA $27        ; Queue: Pick char
C3/42DC:	4C4135  	JMP $3541      ; BRT:1 + NMI

48: Handle Cmd.Set menu member selection
C3/42DF:	20BC45  	JSR $45BC      ; Handle D-Pad
C3/42E2:	A508    	LDA $08        ; No-autofire keys
C3/42E4:	8980    	BIT #$80       ; Pushing A?
C3/42E6:	F028    	BEQ $4310      ; Branch if not
C3/42E8:	7B      	TDC            ; Clear A
C3/42E9:	A54B    	LDA $4B        ; Selected member
C3/42EB:	C904    	CMP #$04       ; Chose Arrange?
C3/42ED:	F037    	BEQ $4326      ; Sort if so
C3/42EF:	AA      	TAX            ; Index member
C3/42F0:	B569    	LDA $69,X      ; Nobody there?
C3/42F2:	3016    	BMI $430A      ; Fail if so
C3/42F4:	20B20E  	JSR $0EB2      ; Sound: Click
C3/42F7:	A54E    	LDA $4E        ; Cursor row
C3/42F9:	855E    	STA $5E        ; Set return row
C3/42FB:	A54B    	LDA $4B        ; List slot
C3/42FD:	8564    	STA $64        ; Set member slot
C3/42FF:	20D445  	JSR $45D4      ; Load navig data
C3/4302:	20DA45  	JSR $45DA      ; Relocate cursor
C3/4305:	A962    	LDA #$62       ; C3/4338
C3/4307:	8526    	STA $26        ; Next: Cmd choice
C3/4309:	60      	RTS

Fork: Play buzzer
C3/430A:	20C00E  	JSR $0EC0      ; Play buzzer
C3/430D:	205D30  	JSR $305D      ; Pixelate screen

Fork: Handle B and Start
C3/4310:	A509    	LDA $09        ; No-autofire keys
C3/4312:	8910    	BIT #$10       ; Pushing Start?
C3/4314:	D006    	BNE $431C      ; Branch if so
C3/4316:	A509    	LDA $09        ; ...
C3/4318:	8980    	BIT #$80       ; Pushing B?
C3/431A:	F009    	BEQ $4325      ; Exit if not
C3/431C:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/431F:	A90D    	LDA #$0D       ; C3/1C7D
C3/4321:	8527    	STA $27        ; Queue Config
C3/4323:	6426    	STZ $26        ; Next: Fade-out
C3/4325:	60      	RTS

Fork: Reset command order
C3/4326:	20B20E  	JSR $0EB2      ; Sound: Click
C3/4329:	20390F  	JSR $0F39      ; Queue text upload
C3/432C:	20D043  	JSR $43D0      ; Reset member 1
C3/432F:	20D843  	JSR $43D8      ; Reset member 2
C3/4332:	20E143  	JSR $43E1      ; Reset member 3
C3/4335:	4CEA43  	JMP $43EA      ; Reset member 4

62: Handle Cmd.Set menu command choice 1
C3/4338:	200246  	JSR $4602      ; Handle D-Pad
C3/433B:	A508    	LDA $08        ; No-autofire keys
C3/433D:	8980    	BIT #$80       ; Pushing A?
C3/433F:	F018    	BEQ $4359      ; Branch if not
C3/4341:	20B20E  	JSR $0EB2      ; Sound: Click
C3/4344:	A54B    	LDA $4B        ; Cursor slot
C3/4346:	8528    	STA $28        ; Set blinker's
C3/4348:	20062F  	JSR $2F06      ; Create blinker
C3/434B:	A963    	LDA #$63       ; C3/4376
C3/434D:	8526    	STA $26        ; Next: Choice 2
C3/434F:	7B      	TDC            ; Clear A
C3/4350:	A564    	LDA $64        ; Selected member
C3/4352:	0A      	ASL A          ; Double it
C3/4353:	AA      	TAX            ; Index it
C3/4354:	B46D    	LDY $6D,X      ; Actor's address
C3/4356:	8467    	STY $67        ; Memorize it
C3/4358:	60      	RTS

Fork: Handle B
C3/4359:	A509    	LDA $09        ; No-autofire keys
C3/435B:	8980    	BIT #$80       ; Pushing B?
C3/435D:	F016    	BEQ $4375      ; Exit if not
C3/435F:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/4362:	20B645  	JSR $45B6      ; Load navig data
C3/4365:	A55E    	LDA $5E        ; Return position
C3/4367:	854E    	STA $4E        ; Set cursor row
C3/4369:	20BF45  	JSR $45BF      ; Relocate cursor
C3/436C:	A54E    	LDA $4E        ; ...
C3/436E:	855E    	STA $5E        ; ...
C3/4370:	A948    	LDA #$48       ; C3/42DF
C3/4372:	8526    	STA $26        ; Next: Pick char
C3/4374:	60      	RTS            ; ...
C3/4375:	60      	RTS

63: Handle Cmd.Set menu command choice 2
C3/4376:	200246  	JSR $4602      ; Handle D-Pad
C3/4379:	A508    	LDA $08        ; No-autofire keys
C3/437B:	8980    	BIT #$80       ; Pushing A?
C3/437D:	F03E    	BEQ $43BD      ; Branch if not
C3/437F:	20B20E  	JSR $0EB2      ; Sound: Click
C3/4382:	7B      	TDC            ; Clear A
C3/4383:	A54B    	LDA $4B        ; Cursor's slot
C3/4385:	C221    	REP #$21       ; 16-bit A; C-
C3/4387:	6567    	ADC $67        ; Add actor's adr
C3/4389:	A8      	TAY            ; Index sum
C3/438A:	5A      	PHY            ; Memorize it
C3/438B:	E220    	SEP #$20       ; 8-bit A
C3/438D:	B91600  	LDA $0016,Y    ; Second command
C3/4390:	85E0    	STA $E0        ; Memorize it
C3/4392:	7B      	TDC            ; Clear A
C3/4393:	A528    	LDA $28        ; Blinker's slot
C3/4395:	C221    	REP #$21       ; 16-bit A; C-
C3/4397:	6567    	ADC $67        ; Add actor's adr
C3/4399:	A8      	TAY            ; Index sum
C3/439A:	E220    	SEP #$20       ; 8-bit A
C3/439C:	B91600  	LDA $0016,Y    ; First command
C3/439F:	85E1    	STA $E1        ; Memorize it
C3/43A1:	A5E0    	LDA $E0        ; Second command
C3/43A3:	991600  	STA $0016,Y    ; Replace first
C3/43A6:	7A      	PLY            ; Point to second
C3/43A7:	A5E1    	LDA $E1        ; First command
C3/43A9:	991600  	STA $0016,Y    ; Replace second
C3/43AC:	20B444  	JSR $44B4      ; Draw char 1 text
C3/43AF:	20ED44  	JSR $44ED      ; Draw char 2 text
C3/43B2:	202645  	JSR $4526      ; Draw char 3 text
C3/43B5:	205F45  	JSR $455F      ; Draw char 4 text
C3/43B8:	20390F  	JSR $0F39      ; Queue text upload
C3/43BB:	8009    	BRA $43C6      ; Next: Choice 1

Fork: Handle B
C3/43BD:	A509    	LDA $09        ; No-autofire keys
C3/43BF:	8980    	BIT #$80       ; Pushing B?
C3/43C1:	F00C    	BEQ $43CF      ; Exit if not
C3/43C3:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/43C6:	A905    	LDA #$05       ; Blinker: Off
C3/43C8:	1446    	TRB $46        ; Set menu flag
C3/43CA:	A962    	LDA #$62       ; C3/4338
C3/43CC:	8526    	STA $26        ; Next: Choice 1
C3/43CE:	60      	RTS            ; ...
C3/43CF:	60      	RTS

Reset command list for member 1
C3/43D0:	A600    	LDX $00        ; Point to $6D
C3/43D2:	20F343  	JSR $43F3      ; Reset commands
C3/43D5:	4CB444  	JMP $44B4      ; Redraw text

Reset command list for member 2
C3/43D8:	A20200  	LDX #$0002     ; Point to $6F
C3/43DB:	20F343  	JSR $43F3      ; Reset commands
C3/43DE:	4CED44  	JMP $44ED      ; Redraw text

Reset command list for member 3
C3/43E1:	A20400  	LDX #$0004     ; Point to $71
C3/43E4:	20F343  	JSR $43F3      ; Reset commands
C3/43E7:	4C2645  	JMP $4526      ; Redraw text

Reset command list for member 4
C3/43EA:	A20600  	LDX #$0006     ; Point to $73
C3/43ED:	20F343  	JSR $43F3      ; Reset commands
C3/43F0:	4C5F45  	JMP $455F      ; Redraw text

Reset member's battle command list
C3/43F3:	B46D    	LDY $6D,X      ; Actor's address
C3/43F5:	F033    	BEQ $442A      ; Exit if nobody
C3/43F7:	7B      	TDC            ; Clear A
C3/43F8:	B90000  	LDA $0000,Y    ; Actor
C3/43FB:	C90C    	CMP #$0C       ; Gogo?
C3/43FD:	F02C    	BEQ $442B      ; Exit if so
C3/43FF:	8D0242  	STA $4202      ; Set multiplicand
C3/4402:	A916    	LDA #$16       ; Actor data size
C3/4404:	8D0342  	STA $4203      ; Set multiplier
C3/4407:	EA      	NOP
C3/4408:	EA      	NOP
C3/4409:	EA      	NOP
C3/440A:	EA      	NOP
C3/440B:	AE1642  	LDX $4216      ; Index product
C3/440E:	BFA27CED	LDA $ED7CA2,X  ; Command 1
C3/4412:	991600  	STA $0016,Y    ; Set actor's
C3/4415:	BFA37CED	LDA $ED7CA3,X  ; Command 2
C3/4419:	991700  	STA $0017,Y    ; Set actor's
C3/441C:	BFA47CED	LDA $ED7CA4,X  ; Command 3
C3/4420:	991800  	STA $0018,Y    ; Set actor's
C3/4423:	BFA57CED	LDA $ED7CA5,X  ; Command 4
C3/4427:	991900  	STA $0019,Y    ; Set actor's
C3/442A:	60      	RTS            ; ...
C3/442B:	60      	RTS

Draw Cmd.Set menu
C3/442C:	20286A  	JSR $6A28      ; Clear BG2 map A
C3/442F:	A09044  	LDY #$4490     ; C3/4490
C3/4432:	204103  	JSR $0341      ; Draw cmd box A
C3/4435:	A09444  	LDY #$4494     ; C3/4494
C3/4438:	204103  	JSR $0341      ; Draw cmd box B
C3/443B:	A09844  	LDY #$4498     ; C3/4498
C3/443E:	204103  	JSR $0341      ; Draw cmd box C
C3/4441:	A09C44  	LDY #$449C     ; C3/449C
C3/4444:	204103  	JSR $0341      ; Draw cmd box D
C3/4447:	A0A044  	LDY #$44A0     ; C3/44A0
C3/444A:	204103  	JSR $0341      ; Draw name box A
C3/444D:	A0A444  	LDY #$44A4     ; C3/44A4
C3/4450:	204103  	JSR $0341      ; Draw name box B
C3/4453:	A0A844  	LDY #$44A8     ; C3/44A8
C3/4456:	204103  	JSR $0341      ; Draw name box C
C3/4459:	A0AC44  	LDY #$44AC     ; C3/44AC
C3/445C:	204103  	JSR $0341      ; Draw name box D
C3/445F:	A0B044  	LDY #$44B0     ; C3/44B0
C3/4462:	204103  	JSR $0341      ; Draw Arrange box
C3/4465:	20520E  	JSR $0E52      ; Upload windows
C3/4468:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/446B:	20196A  	JSR $6A19      ; Clear BG1 map B
C3/446E:	203C6A  	JSR $6A3C      ; Clear BG3 map A
C3/4471:	20416A  	JSR $6A41      ; Clear BG3 map B
C3/4474:	A930    	LDA #$30       ; Palette 4
C3/4476:	8529    	STA $29        ; Color: Blue
C3/4478:	A0F14A  	LDY #$4AF1     ; Text pointer
C3/447B:	20F902  	JSR $02F9      ; Draw "Arrange"
C3/447E:	20B444  	JSR $44B4      ; Draw char 1 text
C3/4481:	20ED44  	JSR $44ED      ; Draw char 2 text
C3/4484:	202645  	JSR $4526      ; Draw char 3 text
C3/4487:	205F45  	JSR $455F      ; Draw char 4 text
C3/448A:	20280E  	JSR $0E28      ; Upload BG1 A+B
C3/448D:	4C6E0E  	JMP $0E6E      ; Upload BG3 A+B

Window layout for Cmd.Set menu
C3/4490:	1F591204	; 20x06 at $591F (Command set A)
C3/4494:	9F5A1204	; 20x06 at $5A9F (Command set B)
C3/4498:	1F5C1204	; 20x06 at $5C1F (Command set C)
C3/449C:	9F5D1204	; 20x06 at $5D9F (Command set D)
C3/44A0:	0B590804	; 10x06 at $590B (Member name A)
C3/44A4:	8B5A0804	; 10x06 at $5A8B (Member name B)
C3/44A8:	0B5C0804	; 10x06 at $5C0B (Member name C)
C3/44AC:	8B5D0804	; 10x06 at $5D8B (Member name D)
C3/44B0:	8B580801	; 10x03 at $588B (Arrange)

Draw Cmd.Set menu text for member 1
C3/44B4:	A569    	LDA $69        ; Actor in slot
C3/44B6:	3034    	BMI $44EC      ; Exit if none
C3/44B8:	220600C2	JSL $C20006    ; Load gear data
C3/44BC:	A66D    	LDX $6D        ; Actor's address
C3/44BE:	8667    	STX $67        ; Memorize it
C3/44C0:	A930    	LDA #$30       ; Palette 4
C3/44C2:	8529    	STA $29        ; Color: Blue
C3/44C4:	A08F79  	LDY #$798F     ; Text position
C3/44C7:	20CF34  	JSR $34CF      ; Draw actor name
C3/44CA:	A920    	LDA #$20       ; Palette 0
C3/44CC:	8529    	STA $29        ; Color: User's
C3/44CE:	A00F7A  	LDY #$7A0F     ; Text position
C3/44D1:	20E534  	JSR $34E5      ; Actor class...
C3/44D4:	A0AD79  	LDY #$79AD     ; Text position
C3/44D7:	209845  	JSR $4598      ; Draw command 1
C3/44DA:	A0237A  	LDY #$7A23     ; Text position
C3/44DD:	209E45  	JSR $459E      ; Draw command 2
C3/44E0:	A0377A  	LDY #$7A37     ; Text position
C3/44E3:	20A545  	JSR $45A5      ; Draw command 3
C3/44E6:	A0AD7A  	LDY #$7AAD     ; Text position
C3/44E9:	20AD45  	JSR $45AD      ; Draw command 4
C3/44EC:	60      	RTS

Draw Cmd.Set menu text for member 2
C3/44ED:	A56A    	LDA $6A        ; Actor in slot
C3/44EF:	3034    	BMI $4525      ; Exit if none
C3/44F1:	220600C2	JSL $C20006    ; Load gear data
C3/44F5:	A66F    	LDX $6F        ; Actor's address
C3/44F7:	8667    	STX $67        ; Memorize it
C3/44F9:	A930    	LDA #$30       ; Palette 4
C3/44FB:	8529    	STA $29        ; Color: Blue
C3/44FD:	A04F7B  	LDY #$7B4F     ; Text position
C3/4500:	20CF34  	JSR $34CF      ; Draw actor name
C3/4503:	A920    	LDA #$20       ; Palette 0
C3/4505:	8529    	STA $29        ; Color: User's
C3/4507:	A0CF7B  	LDY #$7BCF     ; Text position
C3/450A:	20E534  	JSR $34E5      ; Actor class...
C3/450D:	A06D7B  	LDY #$7B6D     ; Text position
C3/4510:	209845  	JSR $4598      ; Draw command 1
C3/4513:	A0E37B  	LDY #$7BE3     ; Text position
C3/4516:	209E45  	JSR $459E      ; Draw command 2
C3/4519:	A0F77B  	LDY #$7BF7     ; Text position
C3/451C:	20A545  	JSR $45A5      ; Draw command 3
C3/451F:	A06D7C  	LDY #$7C6D     ; Text position
C3/4522:	20AD45  	JSR $45AD      ; Draw command 4
C3/4525:	60      	RTS

Draw Cmd.Set menu text for member 3
C3/4526:	A56B    	LDA $6B        ; Actor in slot
C3/4528:	3034    	BMI $455E      ; Exit if none
C3/452A:	220600C2	JSL $C20006    ; Load gear data
C3/452E:	A671    	LDX $71        ; Actor's address
C3/4530:	8667    	STX $67        ; Memorize it
C3/4532:	A930    	LDA #$30       ; Palette 4
C3/4534:	8529    	STA $29        ; Color: Blue
C3/4536:	A00F7D  	LDY #$7D0F     ; Text position
C3/4539:	20CF34  	JSR $34CF      ; Draw actor name
C3/453C:	A920    	LDA #$20       ; Palette 0
C3/453E:	8529    	STA $29        ; Color: User's
C3/4540:	A08F7D  	LDY #$7D8F     ; Text position
C3/4543:	20E534  	JSR $34E5      ; Actor class...
C3/4546:	A02D7D  	LDY #$7D2D     ; Text position
C3/4549:	209845  	JSR $4598      ; Draw command 1
C3/454C:	A0A37D  	LDY #$7DA3     ; Text position
C3/454F:	209E45  	JSR $459E      ; Draw command 2
C3/4552:	A0B77D  	LDY #$7DB7     ; Text position
C3/4555:	20A545  	JSR $45A5      ; Draw command 3
C3/4558:	A02D7E  	LDY #$7E2D     ; Text position
C3/455B:	20AD45  	JSR $45AD      ; Draw command 4
C3/455E:	60      	RTS

Draw Cmd.Set menu text for member 4
C3/455F:	A56C    	LDA $6C        ; Actor in slot
C3/4561:	3034    	BMI $4597      ; Exit if none
C3/4563:	220600C2	JSL $C20006    ; Load gear data
C3/4567:	A673    	LDX $73        ; Actor's address
C3/4569:	8667    	STX $67        ; Memorize it
C3/456B:	A930    	LDA #$30       ; Palette 4
C3/456D:	8529    	STA $29        ; Color: Blue
C3/456F:	A0CF7E  	LDY #$7ECF     ; Text position
C3/4572:	20CF34  	JSR $34CF      ; Draw actor name
C3/4575:	A920    	LDA #$20       ; Palette 0
C3/4577:	8529    	STA $29        ; Color: User's
C3/4579:	A04F7F  	LDY #$7F4F     ; Text position
C3/457C:	20E534  	JSR $34E5      ; Actor class...
C3/457F:	A0ED7E  	LDY #$7EED     ; Text position
C3/4582:	209845  	JSR $4598      ; Draw command 1
C3/4585:	A0637F  	LDY #$7F63     ; Text position
C3/4588:	209E45  	JSR $459E      ; Draw command 2
C3/458B:	A0777F  	LDY #$7F77     ; Text position
C3/458E:	20A545  	JSR $45A5      ; Draw command 3
C3/4591:	A0ED7F  	LDY #$7FED     ; Text position
C3/4594:	20AD45  	JSR $45AD      ; Draw command 4
C3/4597:	60      	RTS

Draw member's 1st command in Cmd.Set menu
C3/4598:	201935  	JSR $3519      ; Set pos/WRAM/Y
C3/459B:	4CE15E  	JMP $5EE1      ; Draw command

Draw member's 2nd command in Cmd.Set menu
C3/459E:	201935  	JSR $3519      ; Set pos/WRAM/Y
C3/45A1:	C8      	INY            ; Point to cmd 2
C3/45A2:	4CE15E  	JMP $5EE1      ; Draw command

Draw member's 3rd command in Cmd.Set menu
C3/45A5:	201935  	JSR $3519      ; Set pos/WRAM/Y
C3/45A8:	C8      	INY            ; Point to cmd 2
C3/45A9:	C8      	INY            ; Point to cmd 3
C3/45AA:	4CE15E  	JMP $5EE1      ; Draw command

Draw member's 4th command in Cmd.Set menu
C3/45AD:	201935  	JSR $3519      ; Set pos/WRAM/Y
C3/45B0:	C8      	INY            ; Point to cmd 2
C3/45B1:	C8      	INY            ; Point to cmd 3
C3/45B2:	C8      	INY            ; Point to cmd 4
C3/45B3:	4CE15E  	JMP $5EE1      ; Draw command

Load navigation data for Cmd.Set menu's actor list
C3/45B6:	A0C545  	LDY #$45C5     ; C3/45C5
C3/45B9:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for Cmd.Set menu's actor list
C3/45BC:	202D07  	JSR $072D      ; Handle D-Pad
C3/45BF:	A0CA45  	LDY #$45CA     ; C3/45CA
C3/45C2:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for Cmd.Set menu's actor list
C3/45C5:	80      	; Wraps vertically
C3/45C6:	00      	; Initial column
C3/45C7:	00      	; Initial row
C3/45C8:	01      	; 1 column
C3/45C9:	05      	; 5 rows

Cursor positions for Cmd.Set menu's actor list
C3/45CA:	0820    	; Member 1
C3/45CC:	0850    	; Member 2
C3/45CE:	0880    	; Member 3
C3/45D0:	08B0    	; Member 4
C3/45D2:	080C    	; Arrange

Load navigation data for Cmd.Set menu's command list
C3/45D4:	A04A46  	LDY #$464A     ; C3/464A
C3/45D7:	4CFE05  	JMP $05FE      ; Load navig data

Relocate cursor in Cmd.Set menu's command list
C3/45DA:	7B      	TDC            ; Clear A
C3/45DB:	A564    	LDA $64        ; Member slot
C3/45DD:	0A      	ASL A          ; Double it
C3/45DE:	AA      	TAX            ; Index it
C3/45DF:	7CE245  	JMP ($45E2,X)  ; Relocate cursor

Jump table for the above
C3/45E2:	EA45    	; Member 1
C3/45E4:	F045    	; Member 2
C3/45E6:	F645    	; Member 3
C3/45E8:	FC45    	; Member 4

Relocate cursor in Cmd.Set menu's command list for member 1
C3/45EA:	A04F46  	LDY #$464F     ; C3/464F
C3/45ED:	4C4006  	JMP $0640      ; Relocate cursor

Relocate cursor in Cmd.Set menu's command list for member 2
C3/45F0:	A05746  	LDY #$4657     ; C3/4657
C3/45F3:	4C4006  	JMP $0640      ; Relocate cursor

Relocate cursor in Cmd.Set menu's command list for member 3
C3/45F6:	A05F46  	LDY #$465F     ; C3/465F
C3/45F9:	4C4006  	JMP $0640      ; Relocate cursor

Relocate cursor in Cmd.Set menu's command list for member 4
C3/45FC:	A06746  	LDY #$4667     ; C3/4667
C3/45FF:	4C4006  	JMP $0640      ; Relocate cursor

Handle D-Pad and cursor for Cmd.Set menu's command list
C3/4602:	201546  	JSR $4615      ; Handle D-Pad
C3/4605:	7B      	TDC            ; Clear A
C3/4606:	A564    	LDA $64        ; Member
C3/4608:	0A      	ASL A          ; Double it
C3/4609:	AA      	TAX            ; Index it
C3/460A:	7C0D46  	JMP ($460D,X)  ; Relocate cursor

Jump table for the above
C3/460D:	EA45    	; Member 1
C3/460F:	F045    	; Member 2
C3/4611:	F645    	; Member 3
C3/4613:	FC45    	; Member 4

Handle D-Pad for Cmd.Set menu's command list
C3/4615:	644D    	STZ $4D        ; Cursor col: 1st
C3/4617:	A50B    	LDA $0B        ; Semi-auto keys
C3/4619:	8908    	BIT #$08       ; Pushing up?
C3/461B:	F005    	BEQ $4622      ; Branch if not
C3/461D:	644E    	STZ $4E        ; Cursor slot: Top
C3/461F:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/4622:	A50B    	LDA $0B        ; Semi-auto keys
C3/4624:	8904    	BIT #$04       ; Pushing down?
C3/4626:	F007    	BEQ $462F      ; Branch if not
C3/4628:	A903    	LDA #$03       ; Slot: Bottom
C3/462A:	854E    	STA $4E        ; Set cursor slot
C3/462C:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/462F:	A50B    	LDA $0B        ; Semi-auto keys
C3/4631:	8902    	BIT #$02       ; Pushing left?
C3/4633:	F007    	BEQ $463C      ; Branch if not
C3/4635:	A901    	LDA #$01       ; Slot: Left
C3/4637:	854E    	STA $4E        ; Set cursor slot
C3/4639:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/463C:	A50B    	LDA $0B        ; Semi-auto keys
C3/463E:	8901    	BIT #$01       ; Pushing right?
C3/4640:	F007    	BEQ $4649      ; Exit if not
C3/4642:	A902    	LDA #$02       ; Slot: Right
C3/4644:	854E    	STA $4E        ; Set cursor slot
C3/4646:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/4649:	60      	RTS

Navigation data for Cmd.Set menu's command list
C3/464A:	81      	; Never wraps
C3/464B:	00      	; Initial column
C3/464C:	00      	; Initial row
C3/464D:	01      	; 1 column
C3/464E:	04      	; 4 rows

Cursor positions for member 1 in Cmd.Set menu
C3/464F:	8020    	; Command 1
C3/4651:	582C    	; Command 2
C3/4653:	A82C    	; Command 3
C3/4655:	8038    	; Command 4

Cursor positions for member 2 in Cmd.Set menu
C3/4657:	8050    	; Command 1
C3/4659:	585C    	; Command 2
C3/465B:	A85C    	; Command 3
C3/465D:	8068    	; Command 4

Cursor positions for member 3 in Cmd.Set menu
C3/465F:	8080    	; Command 1
C3/4661:	588C    	; Command 2
C3/4663:	A88C    	; Command 3
C3/4665:	8098    	; Command 4

Cursor positions for member 4 in Cmd.Set menu
C3/4667:	80B0    	; Command 1
C3/4669:	58BC    	; Command 2
C3/466B:	A8BC    	; Command 3
C3/466D:	80C8    	; Command 4

Set to condense text in Cmd.Set menu
C3/466F:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/4671:	8D5043  	STA $4350      ; Set DMA mode
C3/4674:	A912    	LDA #$12       ; $2112
C3/4676:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/4679:	A08E46  	LDY #$468E     ; C3/468E
C3/467C:	8C5243  	STY $4352      ; Set src LBs
C3/467F:	A9C3    	LDA #$C3       ; Bank: C3
C3/4681:	8D5443  	STA $4354      ; Set src HB
C3/4684:	A9C3    	LDA #$C3       ; ...
C3/4686:	8D5743  	STA $4357      ; Set indir HB
C3/4689:	A920    	LDA #$20       ; Channel: 5
C3/468B:	0443    	TSB $43        ; Queue HDMA-5
C3/468D:	60      	RTS

Text shifting table for the above
C3/468E:	1F 0000 	; Arrange
C3/4691:	0C 0400 	; Row 1
C3/4694:	0C 0800 	; Row 2
C3/4697:	24 0C00 	; Row 3, row 4
C3/469A:	0C 1000 	; Row 5
C3/469D:	24 1400 	; Row 6, row 7
C3/46A0:	0C 1800 	; Row 8
C3/46A3:	24 1C00 	; Row 9, row 10
C3/46A6:	0C 2000 	; Row 11
C3/46A9:	24 2400 	; Row 12
C3/46AC:	00      	; End

4B: Initialize Controller menu
C3/46AD:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/46B0:	20F546  	JSR $46F5      ; Draw menu
C3/46B3:	20A848  	JSR $48A8      ; Queue Win2 HDMA
C3/46B6:	20D748  	JSR $48D7      ; Load navig data
C3/46B9:	20E048  	JSR $48E0      ; Relocate cursor
C3/46BC:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/46BF:	A901    	LDA #$01       ; C3/1D7E
C3/46C1:	8526    	STA $26        ; Next: Fade-in
C3/46C3:	A94C    	LDA #$4C       ; C3/46CA
C3/46C5:	8527    	STA $27        ; Queue: Sustain menu
C3/46C7:	4C4135  	JMP $3541      ; BRT:1 + NMI

4C: Sustain Controller menu
C3/46CA:	20390F  	JSR $0F39      ; Queue BG3 upload
C3/46CD:	20DD48  	JSR $48DD      ; Handle D-Pad
C3/46D0:	A509    	LDA $09        ; No-autofire keys
C3/46D2:	8910    	BIT #$10       ; Pushing Start?
C3/46D4:	D006    	BNE $46DC      ; Branch if so
C3/46D6:	A509    	LDA $09        ; ...
C3/46D8:	8980    	BIT #$80       ; Pushing B?
C3/46DA:	F00A    	BEQ $46E6      ; Branch if not
C3/46DC:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/46DF:	A90D    	LDA #$0D       ; C3/1C7D
C3/46E1:	8527    	STA $27        ; Queue Config menu
C3/46E3:	6426    	STZ $26        ; Next: Fade-out
C3/46E5:	60      	RTS

Fork: Handle left and right
C3/46E6:	A50B    	LDA $0B        ; Semi-auto keys
C3/46E8:	8901    	BIT #$01       ; Pushing right?
C3/46EA:	D006    	BNE $46F2      ; Branch if so
C3/46EC:	A50B    	LDA $0B        ; ...
C3/46EE:	8902    	BIT #$02       ; Pushing left?
C3/46F0:	F002    	BEQ $46F4      ; Exit if not
C3/46F2:	8023    	BRA $4717      ; Handle changes
C3/46F4:	60      	RTS

Draw Controller menu
C3/46F5:	A0F348  	LDY #$48F3     ; C3/48F3
C3/46F8:	204103  	JSR $0341      ; Draw menu window
C3/46FB:	20520E  	JSR $0E52      ; Upload window
C3/46FE:	A930    	LDA #$30       ; Palette 4
C3/4700:	8529    	STA $29        ; Color: Blue
C3/4702:	A0FB4A  	LDY #$4AFB     ; Text pointer
C3/4705:	20F902  	JSR $02F9      ; Draw "Controller"
C3/4708:	20B447  	JSR $47B4      ; Draw char 1 text
C3/470B:	20F147  	JSR $47F1      ; Draw char 2 text
C3/470E:	202E48  	JSR $482E      ; Draw char 3 text
C3/4711:	206B48  	JSR $486B      ; Draw char 4 text
C3/4714:	4C6E0E  	JMP $0E6E      ; Upload text

Handle changes in Controller menu
C3/4717:	7B      	TDC            ; Clear A
C3/4718:	A54B    	LDA $4B        ; Member slot
C3/471A:	AA      	TAX            ; Index it
C3/471B:	B569    	LDA $69,X      ; Nobody there?
C3/471D:	300A    	BMI $4729      ; Exit if so
C3/471F:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/4722:	A54B    	LDA $4B        ; Cursor slot
C3/4724:	0A      	ASL A          ; Double it
C3/4725:	AA      	TAX            ; Index it
C3/4726:	7C2A47  	JMP ($472A,X)  ; Apply changes
C3/4729:	60      	RTS

Jump table for controller assignments
C3/472A:	3247    	; Member 1
C3/472C:	5147    	; Member 2
C3/472E:	7247    	; Member 3
C3/4730:	9347    	; Member 4

Update controller assignment for member 1
C3/4732:	AD4F1D  	LDA $1D4F      ; ...
C3/4735:	2901    	AND #$01       ; ...
C3/4737:	A50B    	LDA $0B        ; Semi-auto keys
C3/4739:	8901    	BIT #$01       ; Pushing right?
C3/473B:	F00A    	BEQ $4747      ; Branch if not
C3/473D:	A901    	LDA #$01       ; Assign Cntlr2
C3/473F:	0D4F1D  	ORA $1D4F      ; Merge pad data
C3/4742:	8D4F1D  	STA $1D4F      ; Update options
C3/4745:	806D    	BRA $47B4      ; Redraw text
C3/4747:	AD4F1D  	LDA $1D4F      ; Joypad options
C3/474A:	29FE    	AND #$FE       ; Assign Cntlr1
C3/474C:	8D4F1D  	STA $1D4F      ; Save changes
C3/474F:	8063    	BRA $47B4      ; Redraw text

Update controller assignment for member 2
C3/4751:	AD4F1D  	LDA $1D4F      ; ...
C3/4754:	2902    	AND #$02       ; ...
C3/4756:	A50B    	LDA $0B        ; Semi-auto keys
C3/4758:	8901    	BIT #$01       ; Pushing right?
C3/475A:	F00B    	BEQ $4767      ; Branch if not
C3/475C:	A902    	LDA #$02       ; Assign Cntlr2
C3/475E:	0D4F1D  	ORA $1D4F      ; Merge pad data
C3/4761:	8D4F1D  	STA $1D4F      ; Update options
C3/4764:	4CF147  	JMP $47F1      ; Redraw text
C3/4767:	AD4F1D  	LDA $1D4F      ; Joypad options
C3/476A:	29FD    	AND #$FD       ; Assign Cntlr1
C3/476C:	8D4F1D  	STA $1D4F      ; Save changes
C3/476F:	4CF147  	JMP $47F1      ; Redraw text

Update controller assignment for member 3
C3/4772:	AD4F1D  	LDA $1D4F      ; ...
C3/4775:	2904    	AND #$04       ; ...
C3/4777:	A50B    	LDA $0B        ; Semi-auto keys
C3/4779:	8901    	BIT #$01       ; Pushing right?
C3/477B:	F00B    	BEQ $4788      ; Branch if not
C3/477D:	A904    	LDA #$04       ; Assign Cntlr2
C3/477F:	0D4F1D  	ORA $1D4F      ; Merge pad data
C3/4782:	8D4F1D  	STA $1D4F      ; Update options
C3/4785:	4C2E48  	JMP $482E      ; Redraw text
C3/4788:	AD4F1D  	LDA $1D4F      ; Joypad options
C3/478B:	29FB    	AND #$FB       ; Assign Cntlr1
C3/478D:	8D4F1D  	STA $1D4F      ; Save changes
C3/4790:	4C2E48  	JMP $482E      ; Redraw text

Update controller assignment for member 4
C3/4793:	AD4F1D  	LDA $1D4F      ; ...
C3/4796:	2908    	AND #$08       ; ...
C3/4798:	A50B    	LDA $0B        ; Semi-auto keys
C3/479A:	8901    	BIT #$01       ; Pushing right?
C3/479C:	F00B    	BEQ $47A9      ; Branch if not
C3/479E:	A908    	LDA #$08       ; Assign Cntlr2
C3/47A0:	0D4F1D  	ORA $1D4F      ; Merge pad data
C3/47A3:	8D4F1D  	STA $1D4F      ; Update options
C3/47A6:	4C6B48  	JMP $486B      ; Redraw text
C3/47A9:	AD4F1D  	LDA $1D4F      ; Joypad options
C3/47AC:	29F7    	AND #$F7       ; Assign Cntlr1
C3/47AE:	8D4F1D  	STA $1D4F      ; Save changes
C3/47B1:	4C6B48  	JMP $486B      ; Redraw text

Draw Controller menu text for member 1
C3/47B4:	A569    	LDA $69        ; Nobody here?
C3/47B6:	3038    	BMI $47F0      ; Exit if so
C3/47B8:	A66D    	LDX $6D        ; Actor's address
C3/47BA:	8667    	STX $67        ; Memorize it
C3/47BC:	A920    	LDA #$20       ; Palette 0
C3/47BE:	8529    	STA $29        ; Color: User's
C3/47C0:	A0CF7B  	LDY #$7BCF     ; Text position
C3/47C3:	20CF34  	JSR $34CF      ; Draw actor name
C3/47C6:	AD4F1D  	LDA $1D4F      ; Assigned pad
C3/47C9:	2901    	AND #$01       ; Player 1's?
C3/47CB:	F009    	BEQ $47D6      ; Branch if so
C3/47CD:	A924    	LDA #$24       ; Color: Gray
C3/47CF:	20DF47  	JSR $47DF      ; Draw "Cntlr1"
C3/47D2:	A920    	LDA #$20       ; Color: User's
C3/47D4:	8012    	BRA $47E8      ; Draw "Cntlr2"

Fork: Highlight Cntlr1
C3/47D6:	A920    	LDA #$20       ; Color: User's
C3/47D8:	20DF47  	JSR $47DF      ; Draw "Cntlr1"
C3/47DB:	A924    	LDA #$24       ; Color: Gray
C3/47DD:	8009    	BRA $47E8      ; Draw "Cntlr2"

Fork: Draw "Cntlr1"
C3/47DF:	8529    	STA $29        ; Set palette
C3/47E1:	A0084B  	LDY #$4B08     ; Text pointer
C3/47E4:	20F902  	JSR $02F9      ; Draw "Cntlr1"
C3/47E7:	60      	RTS

Fork: Draw "Cntlr2"
C3/47E8:	8529    	STA $29        ; Set palette
C3/47EA:	A0114B  	LDY #$4B11     ; Text pointer
C3/47ED:	20F902  	JSR $02F9      ; Draw "Cntlr2"
C3/47F0:	60      	RTS

Draw Controller menu text for member 2
C3/47F1:	A56A    	LDA $6A        ; Nobody here?
C3/47F3:	3038    	BMI $482D      ; Exit if so
C3/47F5:	A66F    	LDX $6F        ; Actor's address
C3/47F7:	8667    	STX $67        ; Memorize it
C3/47F9:	A920    	LDA #$20       ; Palette 0
C3/47FB:	8529    	STA $29        ; Color: User's
C3/47FD:	A04F7C  	LDY #$7C4F     ; Text position
C3/4800:	20CF34  	JSR $34CF      ; Draw actor name
C3/4803:	AD4F1D  	LDA $1D4F      ; Assigned pad
C3/4806:	2902    	AND #$02       ; Player 1's?
C3/4808:	F009    	BEQ $4813      ; Branch if so
C3/480A:	A924    	LDA #$24       ; Color: Gray
C3/480C:	201C48  	JSR $481C      ; Draw "Cntlr1"
C3/480F:	A920    	LDA #$20       ; Color: User's
C3/4811:	8012    	BRA $4825      ; Draw "Cntlr2"

Fork: Highlight Cntlr1
C3/4813:	A920    	LDA #$20       ; Color: User's
C3/4815:	201C48  	JSR $481C      ; Draw "Cntlr1"
C3/4818:	A924    	LDA #$24       ; Color: Gray
C3/481A:	8009    	BRA $4825      ; Draw "Cntlr2"

Fork: Draw "Cntlr1"
C3/481C:	8529    	STA $29        ; Set palette
C3/481E:	A01A4B  	LDY #$4B1A     ; Text pointer
C3/4821:	20F902  	JSR $02F9      ; Draw "Cntlr1"
C3/4824:	60      	RTS

Fork: Draw "Cntlr2"
C3/4825:	8529    	STA $29        ; Set palette
C3/4827:	A0234B  	LDY #$4B23     ; Text pointer
C3/482A:	20F902  	JSR $02F9      ; Draw "Cntlr2"
C3/482D:	60      	RTS

Draw Controller menu text for member 3
C3/482E:	A56B    	LDA $6B        ; Nobody here?
C3/4830:	3038    	BMI $486A      ; Exit if so
C3/4832:	A671    	LDX $71        ; Actor's address
C3/4834:	8667    	STX $67        ; Memorize it
C3/4836:	A920    	LDA #$20       ; Palette 0
C3/4838:	8529    	STA $29        ; Color: User's
C3/483A:	A0CF7C  	LDY #$7CCF     ; Text position
C3/483D:	20CF34  	JSR $34CF      ; Draw actor name
C3/4840:	AD4F1D  	LDA $1D4F      ; Assigned pad
C3/4843:	2904    	AND #$04       ; Player 1's?
C3/4845:	F009    	BEQ $4850      ; Branch if so
C3/4847:	A924    	LDA #$24       ; Color: Gray
C3/4849:	205948  	JSR $4859      ; Draw "Cntlr1"
C3/484C:	A920    	LDA #$20       ; Color: User's
C3/484E:	8012    	BRA $4862      ; Draw "Cntlr2"

Fork: Highlight Cntlr1
C3/4850:	A920    	LDA #$20       ; Color: User's
C3/4852:	205948  	JSR $4859      ; Draw "Cntlr1"
C3/4855:	A924    	LDA #$24       ; Color: Gray
C3/4857:	8009    	BRA $4862      ; Draw "Cntlr2"

Fork: Draw "Cntlr1"
C3/4859:	8529    	STA $29        ; Set palette
C3/485B:	A02C4B  	LDY #$4B2C     ; Text pointer
C3/485E:	20F902  	JSR $02F9      ; Draw "Cntlr1"
C3/4861:	60      	RTS

Fork: Draw "Cntlr2"
C3/4862:	8529    	STA $29        ; Set palette
C3/4864:	A0354B  	LDY #$4B35     ; Text pointer
C3/4867:	20F902  	JSR $02F9      ; Draw "Cntlr2"
C3/486A:	60      	RTS

Draw Controller menu text for member 4
C3/486B:	A56C    	LDA $6C        ; Nobody here?
C3/486D:	3038    	BMI $48A7      ; Exit if so
C3/486F:	A673    	LDX $73        ; Actor's address
C3/4871:	8667    	STX $67        ; Memorize it
C3/4873:	A920    	LDA #$20       ; Palette 0
C3/4875:	8529    	STA $29        ; Color: User's
C3/4877:	A04F7D  	LDY #$7D4F     ; Text position
C3/487A:	20CF34  	JSR $34CF      ; Draw actor name
C3/487D:	AD4F1D  	LDA $1D4F      ; Assigned pad
C3/4880:	2908    	AND #$08       ; Player 1's?
C3/4882:	F009    	BEQ $488D      ; Branch if so
C3/4884:	A924    	LDA #$24       ; Color: Gray
C3/4886:	209648  	JSR $4896      ; Draw "Cntlr1"
C3/4889:	A920    	LDA #$20       ; Color: User's
C3/488B:	8012    	BRA $489F      ; Draw "Cntlr2"

Fork: Highlight Cntlr1
C3/488D:	A920    	LDA #$20       ; Color: User's
C3/488F:	209648  	JSR $4896      ; Draw "Cntlr1"
C3/4892:	A924    	LDA #$24       ; Color: Gray
C3/4894:	8009    	BRA $489F      ; Draw "Cntlr2"

Fork: Draw "Cntlr1"
C3/4896:	8529    	STA $29        ; Set palette
C3/4898:	A03E4B  	LDY #$4B3E     ; Text pointer
C3/489B:	20F902  	JSR $02F9      ; Draw "Cntlr1"
C3/489E:	60      	RTS

Fork: Draw "Cntlr2"
C3/489F:	8529    	STA $29        ; Set palette
C3/48A1:	A0474B  	LDY #$4B47     ; Text pointer
C3/48A4:	20F902  	JSR $02F9      ; Draw "Cntlr2"
C3/48A7:	60      	RTS

Set Window 2 positions per scanline for Controller menu
C3/48A8:	A901    	LDA #$01       ; 2Rx1B to PPU
C3/48AA:	8D5043  	STA $4350      ; Set DMA mode
C3/48AD:	A928    	LDA #$28       ; $2128, $2129
C3/48AF:	8D5143  	STA $4351      ; To Win 2 L+R
C3/48B2:	A0C748  	LDY #$48C7     ; C3/48C7
C3/48B5:	8C5243  	STY $4352      ; Set src LBs
C3/48B8:	A9C3    	LDA #$C3       ; Bank: C3
C3/48BA:	8D5443  	STA $4354      ; Set src HB
C3/48BD:	A9C3    	LDA #$C3       ; ...
C3/48BF:	8D5743  	STA $4357      ; Set indir HB
C3/48C2:	A920    	LDA #$20       ; Channel: 5
C3/48C4:	0443    	TSB $43        ; Queue HDMA-5
C3/48C6:	60      	RTS

Window 2 positions per scanline for Controller menu
C3/48C7:	27 FF FF	; 255, 255
C3/48CA:	30 08 F7	; 8, 247
C3/48CD:	68 FF FF	; 255, 255
C3/48D0:	10 08 F7	; 8, 247
C3/48D3:	10 FF FF	; 255, 255
C3/48D6:	00      	; End

Load navigation data for Controller menu
C3/48D7:	A0E648  	LDY #$48E6     ; C3/48E6
C3/48DA:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for Controller menu
C3/48DD:	202D07  	JSR $072D      ; Handle D-Pad
C3/48E0:	A0EB48  	LDY #$48EB     ; C3/48EB
C3/48E3:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for Controller menu
C3/48E6:	80      	; Wraps vertically
C3/48E7:	00      	; Initial column
C3/48E8:	00      	; Initial row
C3/48E9:	01      	; 1 column
C3/48EA:	04      	; 4 rows

Cursor positions for Controller menu
C3/48EB:	507B    	; Member 1
C3/48ED:	508B    	; Member 2
C3/48EF:	509B    	; Member 3
C3/48F1:	50AB    	; Member 4

Window layout for Controller menu
C3/48F3:	0B5B1C0B	; 30x13 at $5B0B

Forget memorized cursor positions for main menu
C3/48F7:	7B      	TDC            ; Clear A
C3/48F8:	AA      	TAX            ; Index: 0
C3/48F9:	9D2B02  	STA $022B,X    ; Clear position
C3/48FC:	E8      	INX            ; Index +1
C3/48FD:	E01F00  	CPX #$001F     ; At $024A?
C3/4900:	D0F7    	BNE $48F9      ; Loop if not
C3/4902:	60      	RTS

Text pointers for Config page 1
C3/4903:	0B49    	               ; Controller
C3/4905:	8A49    	               ; Cursor
C3/4907:	1F49    	               ; Fast
C3/4909:	2649    	               ; Slow

Positioned text for Config page 1
C3/490B:	8F3D 82A8A7ADABA8A5A59EAB00    ; Controller
C3/4918:	B539 969AA2AD00                ; Wait
C3/491F:	653A 859AACAD00                ; Fast
C3/4926:	753A 92A5A8B000                ; Slow
C3/492D:	353B 92A1A8ABAD00              ; Short
C3/4935:	A53B 8EA700                    ; On
C3/493A:	B53B 8E9F9F00                  ; Off
C3/4940:	253C 92AD9EAB9EA800            ; Stereo
C3/4949:	353C 8CA8A7A800                ; Mono
C3/4950:	B53C 8C9EA6A8ABB200            ; Memory
C3/4959:	253D 8EA9ADA2A6AEA600          ; Optimum
C3/4963:	B53D 8CAEA5ADA2A9A59E00        ; Multiple
C3/496E:	253A B5FFB6FFB7FFB8FFB9FFBA00  ; 1 2 3 4 5 6
C3/497C:	A53A B5FFB6FFB7FFB8FFB9FFBA00  ; 1 2 3 4 5 6
C3/498A:	8F3C 82AEABACA8AB00            ; Cursor

Text pointers for Config page 1
C3/4993:	AA49    	               ; Bat.Mode
C3/4995:	B549    	               ; Bat.Speed
C3/4997:	C149    	               ; Msg.Speed
C3/4999:	CD49    	               ; Cmd.Set
C3/499B:	D749    	               ; Gauge
C3/499D:	DF49    	               ; Sound
C3/499F:	E749    	               ; Reequip

Positioned text for Config page 1
C3/49A1:	F978 82A8A79FA2A000            ; Config
C3/49AA:	8F39 819AADC58CA89D9E00        ; Bat.Mode
C3/49B5:	0F3A 819AADC592A99E9E9D00      ; Bat.Speed
C3/49C1:	8F3A 8CACA0C592A99E9E9D00      ; Msg.Speed
C3/49CD:	0F3B 82A69DC5929EAD00          ; Cmd.Set
C3/49D7:	8F3B 869AAEA09E00              ; Gauge
C3/49DF:	0F3C 92A8AEA79D00              ; Sound
C3/49E7:	0F3D 919E9EAAAEA2A900          ; Reequip
C3/49F1:	A539 809CADA2AF9E00            ; Active
C3/49FA:	253B 96A2A79DA8B000            ; Window
C3/4A03:	A53C 919EAC9EAD00              ; Reset
C3/4A0B:	353D 84A6A9ADB200              ; Empty
C3/4A13:	A53D 92A2A7A0A59E00            ; Single

Text pointers for Config page 2
C3/4A1C:	344A    	               ; Mag.Order
C3/4A1E:	404A    	               ; Window
C3/4A20:	494A    	               ; Color
C3/4A22:	604A    	               ; ========
C3/4A24:	6D4A    	               ; ========
C3/4A26:	7A4A    	               ; ========
C3/4A28:	874A    	               ; R
C3/4A2A:	8B4A    	               ; G
C3/4A2C:	8F4A    	               ; B
C3/4A2E:	514A    	               ; A..
C3/4A30:	564A    	               ; B..
C3/4A32:	5B4A    	               ; C..

Positioned text for Config page 2
C3/4A34:	8F41 8C9AA0C58EAB9D9EAB00      ; Mag.Order
C3/4A40:	8F43 96A2A79DA8B000            ; Window
C3/4A49:	0F44 82A8A5A8AB00              ; Color
C3/4A51:	2542 80D300                    ; A..
C3/4A56:	A542 81D300                    ; B..
C3/4A5B:	2543 82D300                    ; C..
C3/4A60:	2D45 F9F0F0F0F0F0F0F0F0FA00    ; ========
C3/4A6D:	AD45 F9F0F0F0F0F0F0F0F0FA00    ; ========
C3/4A7A:	2D46 F9F0F0F0F0F0F0F0F0FA00    ; ========
C3/4A87:	2545 9100                      ; R
C3/4A8B:	A545 8600                      ; G
C3/4A8F:	2546 8100                      ; B
C3/4A93:	A543 B5FFB6FFB7FFB8FFB9FFBAFF  ; 1 2 3 4 5 6 7 8
        	     BBFFBC00
C3/4AA5:	A541 B5FFB6FFB7FFB8FFB9FFBA00  ; 1 2 3 4 5 6
C3/4AB3:	2544 85A8A7AD00                ; Font
C3/4ABA:	3544 96A2A79DA8B000            ; Window
C3/4AC3:	FB43 A5477900                  ; Jap: Restore (unused)
C3/4AC9:	B544 0102030405060700          ; Palette squares

Mag.Order strings
C3/4AD3:	E8879E9AA5A2A7A0FFFF           ; "<wh>Healing  "
C3/4ADD:	E980ADAD9A9CA4FFFFFF           ; "<bl>Attack   "
C3/4AE7:	EA849F9F9E9CADFFFFFF           ; "<gr>Effect   "

Positioned text for Cmd.Set menu
C3/4AF1:	CF78 80ABAB9AA7A09E00          ; Arrange

Positioned text for Controller menu
C3/4AFB:	4D7B 82A8A7ADABA8A5A59EAB00    ; Controller
C3/4B08:	217C 82A7ADA5ABB500            ; Cntlr1
C3/4B11:	337C 82A7ADA5ABB600            ; Cntlr2
C3/4B1A:	A17C 82A7ADA5ABB500            ; Cntlr1
C3/4B23:	B37C 82A7ADA5ABB600            ; Cntlr2
C3/4B2C:	217D 82A7ADA5ABB500            ; Cntlr1
C3/4B35:	337D 82A7ADA5ABB600            ; Cntlr2
C3/4B3E:	A17D 82A7ADA5ABB500            ; Cntlr1
C3/4B47:	B37D 82A7ADA5ABB600            ; Cntlr2

Load navigation data for Skills menu
C3/4B50:	A06F4B  	LDY #$4B6F     ; C3/4B6F
C3/4B53:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad and cursor memory for Skills menu
C3/4B56:	202D07  	JSR $072D      ; Handle D-Pad
C3/4B59:	A0744B  	LDY #$4B74     ; C3/4B74
C3/4B5C:	204006  	JSR $0640      ; Relocate cursor
C3/4B5F:	7B      	TDC            ; Clear A
C3/4B60:	A528    	LDA $28        ; Member slot
C3/4B62:	0A      	ASL A          ; Double it
C3/4B63:	AA      	TAX            ; Index it
C3/4B64:	A54D    	LDA $4D        ; Cursor column
C3/4B66:	9D3602  	STA $0236,X    ; Remember it
C3/4B69:	A54E    	LDA $4E        ; Cursor row
C3/4B6B:	9D3702  	STA $0237,X    ; Remember it
C3/4B6E:	60      	RTS

Navigation data for Skills menu
C3/4B6F:	80      	; Wraps vertically
C3/4B70:	00      	; Initial column
C3/4B71:	01      	; Initial row
C3/4B72:	01      	; 1 column
C3/4B73:	07      	; 7 rows

Cursor positions for Skills menu
C3/4B74:	0014    	; Espers
C3/4B76:	0024    	; Magic
C3/4B78:	0044    	; SwdTech
C3/4B7A:	0054    	; Blitz
C3/4B7C:	0064    	; Lore
C3/4B7E:	0074    	; Rage
C3/4B80:	0084    	; Dance

Load navigation data for Magic menu
C3/4B82:	A0A94B  	LDY #$4BA9     ; C3/4BA9
C3/4B85:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad and cursor memory for Magic menu
C3/4B88:	20C781  	JSR $81C7      ; Handle D-Pad
C3/4B8B:	A0AE4B  	LDY #$4BAE     ; C3/4BAE
C3/4B8E:	204806  	JSR $0648      ; Relocate cursor
C3/4B91:	7B      	TDC            ; Clear A
C3/4B92:	A528    	LDA $28        ; Member slot
C3/4B94:	0A      	ASL A          ; Double it
C3/4B95:	AA      	TAX            ; Index it
C3/4B96:	A54F    	LDA $4F        ; List column
C3/4B98:	9D3E02  	STA $023E,X    ; Remember it
C3/4B9B:	A550    	LDA $50        ; List row
C3/4B9D:	9D3F02  	STA $023F,X    ; Remember it
C3/4BA0:	A528    	LDA $28        ; Member slot
C3/4BA2:	AA      	TAX            ; Index it
C3/4BA3:	A54A    	LDA $4A        ; Scroll position
C3/4BA5:	9D4602  	STA $0246,X    ; Remember it
C3/4BA8:	60      	RTS

Navigation data for Magic menu
C3/4BA9:	01      	; Wraps horizontally
C3/4BAA:	00      	; Initial column
C3/4BAB:	00      	; Initial row
C3/4BAC:	02      	; 2 columns
C3/4BAD:	08      	; 8 rows

Cursor positions for Magic menu
C3/4BAE:	0874    	; Spell 1
C3/4BB0:	7074    	; Spell 2
C3/4BB2:	0880    	; Spell 3
C3/4BB4:	7080    	; Spell 4
C3/4BB6:	088C    	; Spell 5
C3/4BB8:	708C    	; Spell 6
C3/4BBA:	0898    	; Spell 7
C3/4BBC:	7098    	; Spell 8
C3/4BBE:	08A4    	; Spell 9
C3/4BC0:	70A4    	; Spell 10
C3/4BC2:	08B0    	; Spell 11
C3/4BC4:	70B0    	; Spell 12
C3/4BC6:	08BC    	; Spell 13
C3/4BC8:	70BC    	; Spell 14
C3/4BCA:	08C8    	; Spell 15
C3/4BCC:	70C8    	; Spell 16

Load navigation data for SwdTech, Blitz, or Dance menu
C3/4BCE:	A0DF4B  	LDY #$4BDF     ; C3/4BDF
C3/4BD1:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for SwdTech, Blitz, or Dance menu
C3/4BD4:	202D07  	JSR $072D      ; Handle D-Pad
C3/4BD7:	A0E44B  	LDY #$4BE4     ; C3/4BE4
C3/4BDA:	84E7    	STY $E7        ; ...
C3/4BDC:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for SwdTech, Blitz, and Dance menus
C3/4BDF:	00      	; Wraps on all sides
C3/4BE0:	00      	; Initial column
C3/4BE1:	00      	; Initial row
C3/4BE2:	02      	; 2 columns
C3/4BE3:	04      	; 4 rows

Cursor positions for SwdTech, Blitz, and Dance menus
C3/4BE4:	0874    	; Skill 1
C3/4BE6:	7874    	; Skill 2
C3/4BE8:	088C    	; Skill 3
C3/4BEA:	788C    	; Skill 4
C3/4BEC:	08A4    	; Skill 5
C3/4BEE:	78A4    	; Skill 6
C3/4BF0:	08BC    	; Skill 7
C3/4BF2:	78BC    	; Skill 8

Load navigation data for Lore menu
C3/4BF4:	A0034C  	LDY #$4C03     ; C3/4C03
C3/4BF7:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for Lore menu
C3/4BFA:	20C781  	JSR $81C7      ; Handle D-Pad
C3/4BFD:	A0084C  	LDY #$4C08     ; C3/4C08
C3/4C00:	4C4806  	JMP $0648      ; Relocate cursor

Navigation data for Lore menu
C3/4C03:	01      	; Wraps horizontally
C3/4C04:	00      	; Initial column
C3/4C05:	00      	; Initial row
C3/4C06:	01      	; 1 column
C3/4C07:	08      	; 8 rows

Cursor positions for Lore menu
C3/4C08:	0874    	; Spell 1
C3/4C0A:	0880    	; Spell 2
C3/4C0C:	088C    	; Spell 3
C3/4C0E:	0898    	; Spell 4
C3/4C10:	08A4    	; Spell 5
C3/4C12:	08B0    	; Spell 6
C3/4C14:	08BC    	; Spell 7
C3/4C16:	08C8    	; Spell 8

Load navigation data for Espers menu
C3/4C18:	A0274C  	LDY #$4C27     ; C3/4C27
C3/4C1B:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for Espers menu
C3/4C1E:	20C781  	JSR $81C7      ; Handle D-Pad
C3/4C21:	A02C4C  	LDY #$4C2C     ; C3/4C2C
C3/4C24:	4C4806  	JMP $0648      ; Relocate cursor

Navigation data for Espers menu
C3/4C27:	01      	; Wraps horizontally
C3/4C28:	00      	; Initial column
C3/4C29:	00      	; Initial row
C3/4C2A:	02      	; 2 columns
C3/4C2B:	08      	; 8 rows

Cursor positions for Espers menu
C3/4C2C:	0874    	; Esper 1
C3/4C2E:	7874    	; Esper 2
C3/4C30:	0880    	; Esper 3
C3/4C32:	7880    	; Esper 4
C3/4C34:	088C    	; Esper 5
C3/4C36:	788C    	; Esper 6
C3/4C38:	0898    	; Esper 7
C3/4C3A:	7898    	; Esper 8
C3/4C3C:	08A4    	; Esper 9
C3/4C3E:	78A4    	; Esper 10
C3/4C40:	08B0    	; Esper 11
C3/4C42:	78B0    	; Esper 12
C3/4C44:	08BC    	; Esper 13
C3/4C46:	78BC    	; Esper 14
C3/4C48:	08C8    	; Esper 15
C3/4C4A:	78C8    	; Esper 16

Load navigation data for Rage menu
C3/4C4C:	A05B4C  	LDY #$4C5B     ; C3/4C5B
C3/4C4F:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for Rage menu
C3/4C52:	20C781  	JSR $81C7      ; Handle D-Pad
C3/4C55:	A0604C  	LDY #$4C60     ; C3/4C60
C3/4C58:	4C4806  	JMP $0648      ; Relocate cursor

Navigation data for Rage menu
C3/4C5B:	01      	; Wraps horizontally
C3/4C5C:	00      	; Initial column
C3/4C5D:	00      	; Initial row
C3/4C5E:	02      	; 2 columns
C3/4C5F:	08      	; 8 rows

Cursor positions for Rage menu
C3/4C60:	1874    	; Rage 1
C3/4C62:	8874    	; Rage 2
C3/4C64:	1880    	; Rage 3
C3/4C66:	8880    	; Rage 4
C3/4C68:	188C    	; Rage 5
C3/4C6A:	888C    	; Rage 6
C3/4C6C:	1898    	; Rage 7
C3/4C6E:	8898    	; Rage 8
C3/4C70:	18A4    	; Rage 9
C3/4C72:	88A4    	; Rage 10
C3/4C74:	18B0    	; Rage 11
C3/4C76:	88B0    	; Rage 12
C3/4C78:	18BC    	; Rage 13
C3/4C7A:	88BC    	; Rage 14
C3/4C7C:	18C8    	; Rage 15
C3/4C7E:	88C8    	; Rage 16

Draw Skills menu, disable individual MP costs in Magic menu
C3/4C80:	649E    	STZ $9E        ; No MP by Magic
C3/4C82:	20890F  	JSR $0F89      ; Stop VRAM DMA B
C3/4C85:	A901    	LDA #$01       ; 64x32 at $0000
C3/4C87:	8D0721  	STA $2107      ; Set BG1 map loc
C3/4C8A:	20286A  	JSR $6A28      ; Clear BG2 map A
C3/4C8D:	202D6A  	JSR $6A2D      ; Clear BG2 map B
C3/4C90:	A0A44D  	LDY #$4DA4     ; C3/4DA4
C3/4C93:	204103  	JSR $0341      ; Draw lower box A
C3/4C96:	A0A04D  	LDY #$4DA0     ; C3/4DA0
C3/4C99:	204103  	JSR $0341      ; Draw stats box A
C3/4C9C:	A0A84D  	LDY #$4DA8     ; C3/4DA8
C3/4C9F:	204103  	JSR $0341      ; Draw top box A
C3/4CA2:	A09C4D  	LDY #$4D9C     ; C3/4D9C
C3/4CA5:	204103  	JSR $0341      ; Draw option box B
C3/4CA8:	A0984D  	LDY #$4D98     ; C3/4D98
C3/4CAB:	204103  	JSR $0341      ; Draw option box A
C3/4CAE:	A0B04D  	LDY #$4DB0     ; C3/4DB0
C3/4CB1:	204103  	JSR $0341      ; Draw lower box B
C3/4CB4:	A0AC4D  	LDY #$4DAC     ; C3/4DAC
C3/4CB7:	204103  	JSR $0341      ; Draw stats box B
C3/4CBA:	A0B84D  	LDY #$4DB8     ; C3/4DB8
C3/4CBD:	204103  	JSR $0341      ; Draw top box B
C3/4CC0:	A0B44D  	LDY #$4DB4     ; C3/4DB4
C3/4CC3:	204103  	JSR $0341      ; Draw title box
C3/4CC6:	20520E  	JSR $0E52      ; Upload windows
C3/4CC9:	20274D  	JSR $4D27      ; Draw actor info
C3/4CCC:	20280E  	JSR $0E28      ; Upload BG1 A+B
C3/4CCF:	203C6A  	JSR $6A3C      ; Clear BG3 map A
C3/4CD2:	20416A  	JSR $6A41      ; Clear BG3 map B
C3/4CD5:	20466A  	JSR $6A46      ; Clear BG3 map C
C3/4CD8:	2062A6  	JSR $A662      ; Build desc map
C3/4CDB:	203D4D  	JSR $4D3D      ; Set skill colors
C3/4CDE:	A579    	LDA $79        ; Espers palette
C3/4CE0:	8529    	STA $29        ; Set attributes
C3/4CE2:	A0485C  	LDY #$5C48     ; Text pointer
C3/4CE5:	20F902  	JSR $02F9      ; Draw "Espers"
C3/4CE8:	A57A    	LDA $7A        ; Magic palette
C3/4CEA:	8529    	STA $29        ; Set attributes
C3/4CEC:	A0515C  	LDY #$5C51     ; Text pointer
C3/4CEF:	20F902  	JSR $02F9      ; Draw "Magic"
C3/4CF2:	A57B    	LDA $7B        ; SwdTech palette
C3/4CF4:	8529    	STA $29        ; Set attributes
C3/4CF6:	A0595C  	LDY #$5C59     ; Text pointer
C3/4CF9:	20F902  	JSR $02F9      ; Draw "SwdTech"
C3/4CFC:	A57C    	LDA $7C        ; Blitz palette
C3/4CFE:	8529    	STA $29        ; Set attributes
C3/4D00:	A0635C  	LDY #$5C63     ; Text pointer
C3/4D03:	20F902  	JSR $02F9      ; Draw "Blitz"
C3/4D06:	A57D    	LDA $7D        ; Lore palette
C3/4D08:	8529    	STA $29        ; Set attributes
C3/4D0A:	A06B5C  	LDY #$5C6B     ; Text pointer
C3/4D0D:	20F902  	JSR $02F9      ; Draw "Lore"
C3/4D10:	A57E    	LDA $7E        ; Rage palette
C3/4D12:	8529    	STA $29        ; Set attributes
C3/4D14:	A0725C  	LDY #$5C72     ; Text pointer
C3/4D17:	20F902  	JSR $02F9      ; Draw "Rage"
C3/4D1A:	A57F    	LDA $7F        ; Dance palette
C3/4D1C:	8529    	STA $29        ; Set attributes
C3/4D1E:	A0795C  	LDY #$5C79     ; Text pointer
C3/4D21:	20F902  	JSR $02F9      ; Draw "Dance"
C3/4D24:	4C6E0E  	JMP $0E6E      ; Upload BG3 A+B

Draw actor info in Skills menu, including blue text
C3/4D27:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/4D2A:	20196A  	JSR $6A19      ; Clear BG1 map B
C3/4D2D:	A924    	LDA #$24       ; Palette 1
C3/4D2F:	8529    	STA $29        ; Color: Blue
C3/4D31:	A2815C  	LDX #$5C81     ; Text ptrs loc
C3/4D34:	A00600  	LDY #$0006     ; Strings: 3
C3/4D37:	20BA69  	JSR $69BA      ; Draw "LV/HP/MP"
C3/4D3A:	4CE54E  	JMP $4EE5      ; Draw actor info

Assign a palette to each submenu in Skills menu
C3/4D3D:	A924    	LDA #$24       ; Gray palette
C3/4D3F:	A600    	LDX $00        ; 1st: Espers
C3/4D41:	9579    	STA $79,X      ; Disable menu
C3/4D43:	E8      	INX            ; Menu slot +1
C3/4D44:	E00700  	CPX #$0007     ; Done Dance?
C3/4D47:	D0F8    	BNE $4D41      ; Loop if not
C3/4D49:	20DD4E  	JSR $4EDD      ; Actor's address
C3/4D4C:	5A      	PHY            ; Memorize it
C3/4D4D:	A20400  	LDX #$0004     ; Commands: 4
C3/4D50:	DA      	PHX            ; Save counter
C3/4D51:	A600    	LDX $00        ; 1st: Espers
C3/4D53:	B91600  	LDA $0016,Y    ; Actor's command
C3/4D56:	DF784DC3	CMP $C34D78,X  ; Unlocks submenu?
C3/4D5A:	D004    	BNE $4D60      ; Skip menu if not
C3/4D5C:	A920    	LDA #$20       ; Color: User's
C3/4D5E:	9579    	STA $79,X      ; Enable menu
C3/4D60:	E8      	INX            ; Menu slot +1
C3/4D61:	E00700  	CPX #$0007     ; Done Dance?
C3/4D64:	D0ED    	BNE $4D53      ; Loop if not
C3/4D66:	C8      	INY            ; Cmd slot +1
C3/4D67:	FA      	PLX            ; Loop counter
C3/4D68:	CA      	DEX            ; One less cmd
C3/4D69:	D0E5    	BNE $4D50      ; Loop till last
C3/4D6B:	7A      	PLY            ; Actor's address
C3/4D6C:	B90000  	LDA $0000,Y    ; Actor
C3/4D6F:	C90C    	CMP #$0C       ; Gogo?
C3/4D71:	D004    	BNE $4D77      ; Exit if not
C3/4D73:	A924    	LDA #$24       ; Gray palette
C3/4D75:	8579    	STA $79        ; Disable Espers
C3/4D77:	60      	RTS

Battle commands that unlock a skill menu
C3/4D78:	02      	; Magic (unlocks Espers)
C3/4D79:	02      	; Magic (unlocks Magic)
C3/4D7A:	07      	; SwdTech
C3/4D7B:	0A      	; Blitz
C3/4D7C:	0C      	; Lore
C3/4D7D:	10      	; Rage
C3/4D7E:	13      	; Dance

Draw Magic list and blue "MP" and create portrait
C3/4D7F:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/4D82:	201C4F  	JSR $4F1C      ; Build spell list
C3/4D85:	20874F  	JSR $4F87      ; Draw spell list
C3/4D88:	A92C    	LDA #$2C       ; Palette 3
C3/4D8A:	8529    	STA $29        ; Color: Blue
C3/4D8C:	A0875C  	LDY #$5C87     ; Text pointer
C3/4D8F:	20F902  	JSR $02F9      ; Draw "MP"
C3/4D92:	20AC61  	JSR $61AC      ; Create portrait
C3/4D95:	4C4D0F  	JMP $0F4D      ; Queue BG3 upload

Window layout for main Skills menu
C3/4D98:	8B580704	; 09x06 at $588B (Upper submenus)
C3/4D9C:	0B5A070A	; 09x12 at $5A0B (Lower submenus)
C3/4DA0:	CB591C05	; 30x07 at $59CB (Stats)
C3/4DA4:	8B5B1C0C	; 30x14 at $5B8B (Bottom)
C3/4DA8:	8B581C03	; 30x05 at $588B (Top)

Window layout for Skills submenus
C3/4DAC:	CB611C05	; 30x07 at $61CB (Stats)
C3/4DB0:	8B631C0C	; 30x14 at $638B (List)
C3/4DB4:	75610701	; 09x03 at $6175 (Title)
C3/4DB8:	8B601C03	; 30x05 at $608B (Description)

Set to condense text in Skills menu or submenu
C3/4DBC:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/4DBE:	8D5043  	STA $4350      ; Set CH5 mode
C3/4DC1:	A912    	LDA #$12       ; $2112
C3/4DC3:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/4DC6:	A0264E  	LDY #$4E26     ; C3/4E26
C3/4DC9:	8C5243  	STY $4352      ; Set CH5 src LBs
C3/4DCC:	A9C3    	LDA #$C3       ; Bank: C3
C3/4DCE:	8D5443  	STA $4354      ; Set CH5 src HB
C3/4DD1:	A9C3    	LDA #$C3       ; ...
C3/4DD3:	8D5743  	STA $4357      ; Set indir HB
C3/4DD6:	A920    	LDA #$20       ; Channel: 5
C3/4DD8:	0443    	TSB $43        ; Queue HDMA-5
C3/4DDA:	202D4E  	JSR $4E2D      ; Load BG1 V-Data
C3/4DDD:	A600    	LDX $00        ; Index: 0
C3/4DDF:	BF724EC3	LDA $C34E72,X  ; BG1 H-Pan data
C3/4DE3:	9F099A7E	STA $7E9A09,X  ; Save in RAM
C3/4DE7:	E8      	INX            ; Index +1
C3/4DE8:	E00D00  	CPX #$000D     ; End of table?
C3/4DEB:	D0F2    	BNE $4DDF      ; Loop if not
C3/4DED:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/4DEF:	8D6043  	STA $4360      ; Set CH6 mode
C3/4DF2:	A90D    	LDA #$0D       ; $210D
C3/4DF4:	8D6143  	STA $4361      ; To BG1 H-Scroll
C3/4DF7:	A0099A  	LDY #$9A09     ; 7E/9A09
C3/4DFA:	8C6243  	STY $4362      ; Set CH6 src LBs
C3/4DFD:	A97E    	LDA #$7E       ; Bank: 7E
C3/4DFF:	8D6443  	STA $4364      ; Set CH6 src HB
C3/4E02:	A97E    	LDA #$7E       ; ...
C3/4E04:	8D6743  	STA $4367      ; Set indir HB
C3/4E07:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/4E09:	8D7043  	STA $4370      ; Set CH7 mode
C3/4E0C:	A90E    	LDA #$0E       ; $210E
C3/4E0E:	8D7143  	STA $4371      ; To BG1 V-Scroll
C3/4E11:	A04998  	LDY #$9849     ; 7E/9849
C3/4E14:	8C7243  	STY $4372      ; Set CH7 src LBs
C3/4E17:	A97E    	LDA #$7E       ; Bank: 7E
C3/4E19:	8D7443  	STA $4374      ; Set CH7 src HB
C3/4E1C:	A97E    	LDA #$7E       ; ...
C3/4E1E:	8D7743  	STA $4377      ; Set indir HB
C3/4E21:	A9C0    	LDA #$C0       ; Channels: 6, 7
C3/4E23:	0443    	TSB $43        ; Queue HDMA 6+7
C3/4E25:	60      	RTS

BG3 vertical shift table for skill menus
C3/4E26:	4F 0200 	; SwdTech and above
C3/4E29:	40 0200 	; Blitz and below
C3/4E2C:	00      	; End

Load vertical shift values for BG1 text in skill menus
C3/4E2D:	A600    	LDX $00        ; Index: 0
C3/4E2F:	BF7F4EC3	LDA $C34E7F,X  ; Stats V-Data
C3/4E33:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/4E37:	E8      	INX            ; Index +1
C3/4E38:	E01200  	CPX #$0012     ; At skills?
C3/4E3B:	D0F2    	BNE $4E2F      ; Loop if not
C3/4E3D:	BF7F4EC3	LDA $C34E7F,X  ; Skill V-Data
C3/4E41:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/4E45:	E8      	INX            ; Index +1
C3/4E46:	7B      	TDC            ; Clear A
C3/4E47:	A549    	LDA $49        ; Top BG1 row
C3/4E49:	0A      	ASL A          ; x2
C3/4E4A:	0A      	ASL A          ; x4
C3/4E4B:	0A      	ASL A          ; x8
C3/4E4C:	0A      	ASL A          ; x16
C3/4E4D:	29FF    	AND #$FF       ; ...
C3/4E4F:	C220    	REP #$20       ; 16-bit A
C3/4E51:	18      	CLC            ; Prepare ADC
C3/4E52:	7F7F4EC3	ADC $C34E7F,X  ; Add V-Data
C3/4E56:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/4E5A:	E220    	SEP #$20       ; 8-bit A
C3/4E5C:	E8      	INX            ; Index +1
C3/4E5D:	E8      	INX            ; Index +1
C3/4E5E:	E05A00  	CPX #$005A     ; Past list?
C3/4E61:	D0DA    	BNE $4E3D      ; Loop if not
C3/4E63:	BF7F4EC3	LDA $C34E7F,X  ; Bottom V-Data
C3/4E67:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/4E6B:	E8      	INX            ; Index +1
C3/4E6C:	E05E00  	CPX #$005E     ; End of table?
C3/4E6F:	D0F2    	BNE $4E63      ; Loop if not
C3/4E71:	60      	RTS

BG1 H-Shift table for skill menus (merges tilemaps)
C3/4E72:	27 0001 	; Nothing
C3/4E75:	48 0001 	; Member stats
C3/4E78:	60 0000 	; Spells, etc.
C3/4E7B:	1E 0001 	; Nothing
C3/4E7E:	00      	; End

BG1 V-Shift table for skill menus (condenses text)
C3/4E7F:	3F 0000 	; LV
C3/4E82:	0C 0400 	; HP
C3/4E85:	0C 0800 	; MP
C3/4E88:	0A 0C00 	; Nothing
C3/4E8B:	01 0C00 	; Nothing
C3/4E8E:	0D 0800 	; Nothing
C3/4E91:	04 94FF 	; Ability row A
C3/4E94:	04 94FF 	; Ability row B
C3/4E97:	04 94FF 	; Ability row C
C3/4E9A:	04 98FF 	; Ability row D
C3/4E9D:	04 98FF 	; Ability row E
C3/4EA0:	04 98FF 	; Ability row F
C3/4EA3:	04 9CFF 	; Ability row G
C3/4EA6:	04 9CFF 	; Ability row H
C3/4EA9:	04 9CFF 	; Ability row I
C3/4EAC:	04 A0FF 	; Ability row J
C3/4EAF:	04 A0FF 	; Ability row K
C3/4EB2:	04 A0FF 	; Ability row L
C3/4EB5:	04 A4FF 	; Ability row M
C3/4EB8:	04 A4FF 	; Ability row N
C3/4EBB:	04 A4FF 	; Ability row O
C3/4EBE:	04 A8FF 	; Ability row P
C3/4EC1:	04 A8FF 	; Ability row Q
C3/4EC4:	04 A8FF 	; Ability row R
C3/4EC7:	04 ACFF 	; Ability row S
C3/4ECA:	04 ACFF 	; Ability row T
C3/4ECD:	04 ACFF 	; Ability row U
C3/4ED0:	04 B0FF 	; Ability row V
C3/4ED3:	04 B0FF 	; Ability row W
C3/4ED6:	04 B0FF 	; Ability row X
C3/4ED9:	1E 20FF 	; Ability row Y
C3/4EDC:	00      	; End

Load member's SRAM block address for Skills menu
C3/4EDD:	7B      	TDC            ; Clear A
C3/4EDE:	A528    	LDA $28        ; Member slot
C3/4EE0:	0A      	ASL A          ; Double it
C3/4EE1:	AA      	TAX            ; Index it
C3/4EE2:	B46D    	LDY $6D,X      ; SRAM address
C3/4EE4:	60      	RTS

Draw actor info in Skills menu
C3/4EE5:	20DD4E  	JSR $4EDD      ; Actor's address
C3/4EE8:	8467    	STY $67        ; Memorize it
C3/4EEA:	4CED4E  	JMP $4EED      ; ...
C3/4EED:	A0DD42  	LDY #$42DD     ; Class/KO pos
C3/4EF0:	A2504F  	LDX #$4F50     ; Icon position
C3/4EF3:	202734  	JSR $3427      ; Display status
C3/4EF6:	A0D15C  	LDY #$5CD1     ; Text pointer
C3/4EF9:	20F902  	JSR $02F9      ; Draw HP's "/"
C3/4EFC:	A0D55C  	LDY #$5CD5     ; Text pointer
C3/4EFF:	20F902  	JSR $02F9      ; Draw MP's "/"
C3/4F02:	A2124F  	LDX #$4F12     ; Coords tbl ptr
C3/4F05:	206C0C  	JSR $0C6C      ; Draw LV, HP, MP
C3/4F08:	A920    	LDA #$20       ; Palette 0
C3/4F0A:	8529    	STA $29        ; Color: User's
C3/4F0C:	A01D42  	LDY #$421D     ; Text position
C3/4F0F:	4CE634  	JMP $34E6      ; Draw held esper

Tilemap pointers for stats in Skills menu
C3/4F12:	3742    	; Level
C3/4F14:	B342    	; HP
C3/4F16:	BD42    	; Max HP
C3/4F18:	3343    	; MP
C3/4F1A:	3D43    	; Max MP

Build Magic list based on Mag.Order
C3/4F1C:	A2899D  	LDX #$9D89     ; 7E/9D89
C3/4F1F:	8E8121  	STX $2181      ; Set WRAM LBs
C3/4F22:	A23600  	LDX #$0036     ; Spells: 54
C3/4F25:	A9FF    	LDA #$FF       ; Spell: None
C3/4F27:	8D8021  	STA $2180      ; Add to list
C3/4F2A:	CA      	DEX            ; One less spell
C3/4F2B:	D0FA    	BNE $4F27      ; Loop till last
C3/4F2D:	7B      	TDC            ; Clear A
C3/4F2E:	A8      	TAY            ; List slot: 1
C3/4F2F:	AD541D  	LDA $1D54      ; Game options
C3/4F32:	2907    	AND #$07       ; Get Mag.Order
C3/4F34:	0A      	ASL A          ; x2
C3/4F35:	0A      	ASL A          ; x4
C3/4F36:	AA      	TAX            ; Index it
C3/4F37:	DA      	PHX            ; Save index
C3/4F38:	BF494FC3	LDA $C34F49,X  ; Starting spell
C3/4F3C:	C9FF    	CMP #$FF       ; At terminator?
C3/4F3E:	F007    	BEQ $4F47      ; Exit if so
C3/4F40:	20614F  	JSR $4F61      ; Populate list
C3/4F43:	FA      	PLX            ; Type index
C3/4F44:	E8      	INX            ; Index +1
C3/4F45:	80F0    	BRA $4F37      ; Do next type
C3/4F47:	FA      	PLX            ; Unstack index
C3/4F48:	60      	RTS

Starting spell for each Magic type, sorted based on Mag.Order
C3/4F49:	2D 00 18 FF	; 1: Cure, Fire, Scan
C3/4F4D:	2D 18 00 FF	; 2: Cure, Scan, Fire
C3/4F51:	00 18 2D FF	; 3: Fire, Scan, Cure
C3/4F55:	00 2D 18 FF	; 4: Fire, Cure, Scan
C3/4F59:	18 2D 00 FF	; 5: Scan, Cure, Fire
C3/4F5D:	18 00 2D FF	; 6: Scan, Fire, Cure

Add spells of given type to Magic list based on starting spell
C3/4F61:	C900    	CMP #$00       ; Fire?
C3/4F63:	F009    	BEQ $4F6E      ; Branch if so
C3/4F65:	C92D    	CMP #$2D       ; Cure?
C3/4F67:	F00A    	BEQ $4F73      ; Branch if so
C3/4F69:	A21500  	LDX #$0015     ; Spells: 21
C3/4F6C:	800A    	BRA $4F78      ; Build list

Fork: Black magic
C3/4F6E:	A21800  	LDX #$0018     ; Spells: 24
C3/4F71:	8005    	BRA $4F78      ; Build list

Fork: White magic
C3/4F73:	A20900  	LDX #$0009     ; Spells: 9
C3/4F76:	8000    	BRA $4F78      ; ...

Fork: Populate list
C3/4F78:	86E0    	STX $E0        ; Set spells left
C3/4F7A:	AA      	TAX            ; ...
C3/4F7B:	BB      	TYX            ; List slot
C3/4F7C:	9F899D7E	STA $7E9D89,X  ; Add spell there
C3/4F80:	1A      	INC A          ; Spell number +1
C3/4F81:	C8      	INY            ; List slot +1
C3/4F82:	C6E0    	DEC $E0        ; One less spell
C3/4F84:	D0F5    	BNE $4F7B      ; Loop till last
C3/4F86:	60      	RTS

Draw Magic list
C3/4F87:	20F783  	JSR $83F7      ; Define $E5, $E6
C3/4F8A:	A00800  	LDY #$0008     ; Rows left: 8
C3/4F8D:	5A      	PHY            ; Save counter
C3/4F8E:	209E4F  	JSR $4F9E      ; Draw 2 spells
C3/4F91:	A5E6    	LDA $E6        ; BG1 write row
C3/4F93:	1A      	INC A          ; Go 1 row down
C3/4F94:	1A      	INC A          ; Go 1 row down
C3/4F95:	291F    	AND #$1F       ; Stay in limits
C3/4F97:	85E6    	STA $E6        ; Save changes
C3/4F99:	7A      	PLY            ; Rows left
C3/4F9A:	88      	DEY            ; One less left
C3/4F9B:	D0F0    	BNE $4F8D      ; Loop till last
C3/4F9D:	60      	RTS

Draw a row of two spells in Magic menu
C3/4F9E:	20B54F  	JSR $4FB5      ; Define source
C3/4FA1:	A20300  	LDX #$0003     ; X: 3
C3/4FA4:	20C44F  	JSR $4FC4      ; Draw spell A
C3/4FA7:	E6E5    	INC $E5        ; Menu slot +1
C3/4FA9:	20B54F  	JSR $4FB5      ; Define source
C3/4FAC:	A21000  	LDX #$0010     ; X: 16
C3/4FAF:	20C44F  	JSR $4FC4      ; Draw spell B
C3/4FB2:	E6E5    	INC $E5        ; Menu slot +1
C3/4FB4:	60      	RTS

Set source for loading Magic name
C3/4FB5:	A00700  	LDY #$0007     ; Letters: 7
C3/4FB8:	84EB    	STY $EB        ; Set src size
C3/4FBA:	A067F5  	LDY #$F567     ; E6/F567
C3/4FBD:	84EF    	STY $EF        ; Set src LBs
C3/4FBF:	A9E6    	LDA #$E6       ; Bank: E6
C3/4FC1:	85F1    	STA $F1        ; Set src HB
C3/4FC3:	60      	RTS

Draw text in spell slot of Magic menu
C3/4FC4:	A5E6    	LDA $E6        ; BG1 write row
C3/4FC6:	1A      	INC A          ; Go 1 row down
C3/4FC7:	209F80  	JSR $809F      ; Compute map ptr
C3/4FCA:	C220    	REP #$20       ; 16-bit A
C3/4FCC:	8A      	TXA            ; ...
C3/4FCD:	8F899E7E	STA $7E9E89    ; Set position
C3/4FD1:	E220    	SEP #$20       ; 8-bit A
C3/4FD3:	A59E    	LDA $9E        ; Show MP in list?
C3/4FD5:	F067    	BEQ $503E      ; Branch if not
C3/4FD7:	20EC50  	JSR $50EC      ; Spell
C3/4FDA:	204D51  	JSR $514D      ; Handle graying
C3/4FDD:	20EC50  	JSR $50EC      ; Spell
C3/4FE0:	C9FF    	CMP #$FF       ; None?
C3/4FE2:	F036    	BEQ $501A      ; Blank if so
C3/4FE4:	20A250  	JSR $50A2      ; Spell mastery
C3/4FE7:	C9FF    	CMP #$FF       ; Fully learned?
C3/4FE9:	D02F    	BNE $501A      ; Blank if not

Fork: Draw spell plus MP cost
C3/4FEB:	20EC50  	JSR $50EC      ; Spell
C3/4FEE:	206784  	JSR $8467      ; Load name
C3/4FF1:	A2929E  	LDX #$9E92     ; 7E/9E92
C3/4FF4:	8E8121  	STX $2181      ; Set WRAM LBs
C3/4FF7:	A9FF    	LDA #$FF       ; Space char
C3/4FF9:	8D8021  	STA $2180      ; Add to string
C3/4FFC:	20EC50  	JSR $50EC      ; Spell
C3/4FFF:	200D51  	JSR $510D      ; Define MP cost
C3/5002:	20E004  	JSR $04E0      ; Turn into text
C3/5005:	A5F8    	LDA $F8        ; Tens digit
C3/5007:	8D8021  	STA $2180      ; Add to string
C3/500A:	A5F9    	LDA $F9        ; Ones digit
C3/500C:	8D8021  	STA $2180      ; Add to string
C3/500F:	A9FF    	LDA #$FF       ; Space char
C3/5011:	8D8021  	STA $2180      ; Add to string
C3/5014:	9C8021  	STZ $2180      ; End string
C3/5017:	4CD97F  	JMP $7FD9      ; Draw string

Fork: Blank spell slot
C3/501A:	7B      	TDC            ; Clear A
C3/501B:	A5E5    	LDA $E5        ; Spell slot
C3/501D:	AA      	TAX            ; Index it
C3/501E:	A9FF    	LDA #$FF       ; Spell: None
C3/5020:	9F899D7E	STA $7E9D89,X  ; Assign to slot
C3/5024:	20B951  	JSR $51B9      ; Disable spell
C3/5027:	A00B00  	LDY #$000B     ; Letters: 11
C3/502A:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/502D:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5030:	A9FF    	LDA #$FF       ; Space char
C3/5032:	8D8021  	STA $2180      ; Add to string
C3/5035:	88      	DEY            ; One less left
C3/5036:	D0FA    	BNE $5032      ; Loop till last
C3/5038:	9C8021  	STZ $2180      ; End string
C3/503B:	4CD97F  	JMP $7FD9      ; Draw 11 spaces

Fork: Draw spell plus percentage
C3/503E:	20EC50  	JSR $50EC      ; Spell
C3/5041:	C9FF    	CMP #$FF       ; None?
C3/5043:	F0D5    	BEQ $501A      ; Blank if so
C3/5045:	20A250  	JSR $50A2      ; Spell mastery
C3/5048:	C900    	CMP #$00       ; Zero?
C3/504A:	F0CE    	BEQ $501A      ; Blank if so
C3/504C:	20EC50  	JSR $50EC      ; Spell
C3/504F:	206784  	JSR $8467      ; Load name
C3/5052:	A2929E  	LDX #$9E92     ; 7E/9E92
C3/5055:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5058:	20EC50  	JSR $50EC      ; Spell
C3/505B:	20A250  	JSR $50A2      ; Spell mastery
C3/505E:	C9FF    	CMP #$FF       ; Fully learned?
C3/5060:	F026    	BEQ $5088      ; Branch if so
C3/5062:	48      	PHA            ; Save mastery
C3/5063:	20B951  	JSR $51B9      ; Disable spell
C3/5066:	A92C    	LDA #$2C       ; Palette 3
C3/5068:	8529    	STA $29        ; Color: Bluish
C3/506A:	A9C7    	LDA #$C7       ; Char: ""
C3/506C:	8D8021  	STA $2180      ; Add to string
C3/506F:	68      	PLA            ; Spell mastery
C3/5070:	20E004  	JSR $04E0      ; Turn into text
C3/5073:	A5F8    	LDA $F8        ; Tens digit
C3/5075:	8D8021  	STA $2180      ; Add to string
C3/5078:	A5F9    	LDA $F9        ; Ones digit
C3/507A:	8D8021  	STA $2180      ; Add to string
C3/507D:	A9CD    	LDA #$CD       ; Char: "%"
C3/507F:	8D8021  	STA $2180      ; Add to string
C3/5082:	9C8021  	STZ $2180      ; End string
C3/5085:	4CD97F  	JMP $7FD9      ; Draw string

Fork: Draw spell name only
C3/5088:	A924    	LDA #$24       ; Palette 1
C3/508A:	8529    	STA $29        ; Color: Blue...
C3/508C:	20EC50  	JSR $50EC      ; Spell
C3/508F:	204D51  	JSR $514D      ; Handle graying
C3/5092:	A9FF    	LDA #$FF       ; Space char
C3/5094:	8D8021  	STA $2180      ; Add to string
C3/5097:	8D8021  	STA $2180      ; Add to string
C3/509A:	8D8021  	STA $2180      ; Add to string
C3/509D:	8D8021  	STA $2180      ; Add to string
C3/50A0:	80E0    	BRA $5082      ; Draw string

Get spell's mastery percentage
C3/50A2:	85E0    	STA $E0        ; Save spell
C3/50A4:	20DD4E  	JSR $4EDD      ; Define Y
C3/50A7:	B90000  	LDA $0000,Y    ; Actor
C3/50AA:	C90C    	CMP #$0C       ; Gogo?
C3/50AC:	F017    	BEQ $50C5      ; Branch if so
C3/50AE:	8D0242  	STA $4202      ; Set multiplicand
C3/50B1:	A936    	LDA #$36       ; Spell list size
C3/50B3:	8D0342  	STA $4203      ; Set multiplier
C3/50B6:	7B      	TDC            ; Clear A
C3/50B7:	A5E0    	LDA $E0        ; Spell
C3/50B9:	C220    	REP #$20       ; 16-bit A
C3/50BB:	6D1642  	ADC $4216      ; Add product
C3/50BE:	AA      	TAX            ; Index sum
C3/50BF:	E220    	SEP #$20       ; 8-bit A
C3/50C1:	BD6E1A  	LDA $1A6E,X    ; Spell mastery
C3/50C4:	60      	RTS

Fork: Test all members for Gogo
C3/50C5:	64E1    	STZ $E1        ; Member slot: 1
C3/50C7:	7B      	TDC            ; ...
C3/50C8:	A5E1    	LDA $E1        ; Tested member
C3/50CA:	C528    	CMP $28        ; Gogo?
C3/50CC:	F014    	BEQ $50E2      ; Skip if so
C3/50CE:	0A      	ASL A          ; Double it
C3/50CF:	AA      	TAX            ; Index it
C3/50D0:	B46D    	LDY $6D,X      ; Actor's address
C3/50D2:	F00E    	BEQ $50E2      ; Skip if nobody
C3/50D4:	B90000  	LDA $0000,Y    ; Actor in slot
C3/50D7:	C90C    	CMP #$0C       ; Gogo or higher?
C3/50D9:	B007    	BCS $50E2      ; Skip if so
C3/50DB:	20AE50  	JSR $50AE      ; Actor's mastery
C3/50DE:	C9FF    	CMP #$FF       ; Fully learned?
C3/50E0:	F009    	BEQ $50EB      ; Exit if so
C3/50E2:	E6E1    	INC $E1        ; Member slot +1
C3/50E4:	A5E1    	LDA $E1        ; Members done
C3/50E6:	C904    	CMP #$04       ; Done all 4?
C3/50E8:	D0DD    	BNE $50C7      ; Loop if not
C3/50EA:	7B      	TDC            ; Mastery: 0
C3/50EB:	60      	RTS

Get processed spell
C3/50EC:	7B      	TDC            ; Clear A
C3/50ED:	A5E5    	LDA $E5        ; Spell slot
C3/50EF:	AA      	TAX            ; Index it
C3/50F0:	BF899D7E	LDA $7E9D89,X  ; Spell in slot
C3/50F4:	60      	RTS

Compute spell data index
C3/50F5:	48      	PHA            ; Save spell
C3/50F6:	AD1242  	LDA $4212      ; PPU status
C3/50F9:	2940    	AND #$40       ; H-Blank?
C3/50FB:	F0F9    	BEQ $50F6      ; Loop if not
C3/50FD:	68      	PLA            ; Spell
C3/50FE:	8D1B21  	STA $211B      ; Set matrix A LB
C3/5101:	9C1B21  	STZ $211B      ; Clear HB
C3/5104:	A90E    	LDA #$0E       ; Data size
C3/5106:	8D1C21  	STA $211C      ; Set matrix B
C3/5109:	8D1C21  	STA $211C      ; ...
C3/510C:	60      	RTS

Define spell's MP cost
C3/510D:	48      	PHA            ; Save spell
C3/510E:	20F550  	JSR $50F5      ; Compute index
C3/5111:	AE3421  	LDX $2134      ; Load it
C3/5114:	BFC56AC4	LDA $C46AC5,X  ; Base MP cost
C3/5118:	85E0    	STA $E0        ; Memorize it

Fork: Step Mine
C3/511A:	68      	PLA            ; Spell
C3/511B:	C999    	CMP #$99       ; Step Mine?
C3/511D:	D00F    	BNE $512E      ; Branch if not
C3/511F:	AD1B02  	LDA $021B      ; Hours played
C3/5122:	0A      	ASL A          ; Double them
C3/5123:	85E0    	STA $E0        ; Set MP cost
C3/5125:	AD1C02  	LDA $021C      ; Minutes played
C3/5128:	C91E    	CMP #$1E       ; Under 30?
C3/512A:	9002    	BCC $512E      ; Branch if so
C3/512C:	E6E0    	INC $E0        ; MP cost +1

Fork: Economizer
C3/512E:	ADD711  	LDA $11D7      ; Gear effects
C3/5131:	8940    	BIT #$40       ; Economizer's?
C3/5133:	F005    	BEQ $513A      ; Branch if not
C3/5135:	7B      	TDC            ; Clear A
C3/5136:	A901    	LDA #$01       ; MP cost: 1
C3/5138:	8011    	BRA $514B      ; Put it in X

Fork: Gold Hairpin
C3/513A:	ADD711  	LDA $11D7      ; Gear effects
C3/513D:	8920    	BIT #$20       ; Gold Hairpin?
C3/513F:	F007    	BEQ $5148      ; Branch if not
C3/5141:	7B      	TDC            ; Clear A
C3/5142:	A5E0    	LDA $E0        ; MP cost
C3/5144:	1A      	INC A          ; Add one
C3/5145:	4A      	LSR A          ; Halve it
C3/5146:	8003    	BRA $514B      ; Put it in X

Fork: Normal MP cost
C3/5148:	7B      	TDC            ; Clear A
C3/5149:	A5E0    	LDA $E0        ; Base MP cost
C3/514B:	AA      	TAX            ; Put it in X
C3/514C:	60      	RTS

Enable or disable spell in Magic menu
C3/514D:	C92A    	CMP #$2A       ; Warp?
C3/514F:	F02A    	BEQ $517B      ; Branch if so
C3/5151:	C912    	CMP #$12       ; X-Zone?
C3/5153:	F019    	BEQ $516E      ; Branch if so
C3/5155:	20F550  	JSR $50F5      ; Compute index
C3/5158:	AE3421  	LDX $2134      ; Load it
C3/515B:	BFC36AC4	LDA $C46AC3,X  ; Spell properties
C3/515F:	2901    	AND #$01       ; Usable in field?
C3/5161:	F009    	BEQ $516C      ; Disable if not
C3/5163:	20EC50  	JSR $50EC      ; Spell
C3/5166:	200D51  	JSR $510D      ; Define MP cost
C3/5169:	4C8851  	JMP $5188      ; Test MP and Imp

Fork: Disable spell
C3/516C:	804B    	BRA $51B9      ; Go directly...

Fork: X-Zone (unused feature)
C3/516E:	85E3    	STA $E3        ; Memorize spell
C3/5170:	AD0102  	LDA $0201      ; Area permissions
C3/5173:	8901    	BIT #$01       ; Forbid X-Zone?
C3/5175:	F0F5    	BEQ $516C      ; Disable if so
C3/5177:	A5E3    	LDA $E3        ; Spell number
C3/5179:	80DA    	BRA $5155      ; Do basic checks

Fork: Warp
C3/517B:	85E3    	STA $E3        ; Memorize spell
C3/517D:	AD0102  	LDA $0201      ; Area permissions
C3/5180:	8902    	BIT #$02       ; Can warp here?
C3/5182:	F0E8    	BEQ $516C      ; Disable if not
C3/5184:	A5E3    	LDA $E3        ; Spell number
C3/5186:	80CD    	BRA $5155      ; Do basic checks

Fork: Test Imp
C3/5188:	86E2    	STX $E2        ; Save MP cost
C3/518A:	20DD4E  	JSR $4EDD      ; Define Y
C3/518D:	B91400  	LDA $0014,Y    ; Actor's status
C3/5190:	2920    	AND #$20       ; Imp?
C3/5192:	F007    	BEQ $519B      ; Branch if not
C3/5194:	20EC50  	JSR $50EC      ; Spell
C3/5197:	C923    	CMP #$23       ; Imp?
C3/5199:	D01E    	BNE $51B9      ; Disable if not

Fork: Test MP
C3/519B:	C220    	REP #$20       ; 16-bit A
C3/519D:	B90D00  	LDA $000D,Y    ; Actor's MP
C3/51A0:	85E0    	STA $E0        ; Memorize it
C3/51A2:	E220    	SEP #$20       ; 8-bit A
C3/51A4:	A6E2    	LDX $E2        ; MP cost
C3/51A6:	E4E0    	CPX $E0        ; Equals user MP?
C3/51A8:	F002    	BEQ $51AC      ; Enable if so
C3/51AA:	B00D    	BCS $51B9      ; Block if above

Fork: Enable spell
C3/51AC:	7B      	TDC            ; Clear A
C3/51AD:	A5E5    	LDA $E5        ; Spell slot
C3/51AF:	AA      	TAX            ; Index it
C3/51B0:	A920    	LDA #$20       ; Palette 0
C3/51B2:	8529    	STA $29        ; Color: User's
C3/51B4:	9F099E7E	STA $7E9E09,X  ; Enable spell
C3/51B8:	60      	RTS

Fork: Disable spell
C3/51B9:	7B      	TDC            ; Clear A
C3/51BA:	A5E5    	LDA $E5        ; Spell slot
C3/51BC:	AA      	TAX            ; Index it
C3/51BD:	A928    	LDA #$28       ; Palette 2
C3/51BF:	8529    	STA $29        ; Color: Gray
C3/51C1:	9F099E7E	STA $7E9E09,X  ; Disable spell
C3/51C5:	60      	RTS

Draw MP cost in corner of Magic menu
C3/51C6:	A920    	LDA #$20       ; Palette 0
C3/51C8:	8529    	STA $29        ; Color: User's
C3/51CA:	C220    	REP #$20       ; 16-bit A
C3/51CC:	A9BF81  	LDA #$81BF     ; Tilemap ptr
C3/51CF:	8F899E7E	STA $7E9E89    ; Set position
C3/51D3:	E220    	SEP #$20       ; 8-bit A
C3/51D5:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/51D8:	8E8121  	STX $2181      ; Set WRAM LBs
C3/51DB:	7B      	TDC            ; Clear A
C3/51DC:	A54B    	LDA $4B        ; List slot
C3/51DE:	AA      	TAX            ; Index it
C3/51DF:	BF899D7E	LDA $7E9D89,X  ; Spell in slot
C3/51E3:	200D51  	JSR $510D      ; Define MP cost
C3/51E6:	20E004  	JSR $04E0      ; Turn into text
C3/51E9:	A5F8    	LDA $F8        ; Tens digit
C3/51EB:	8D8021  	STA $2180      ; Add to string
C3/51EE:	A5F9    	LDA $F9        ; Ones digit
C3/51F0:	8D8021  	STA $2180      ; Add to string
C3/51F3:	9C8021  	STZ $2180      ; End string
C3/51F6:	4CD97F  	JMP $7FD9      ; Draw MP cost

Draw Lore list and menu title, create portrait
C3/51F9:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/51FC:	203C52  	JSR $523C      ; Draw Lore list
C3/51FF:	A92C    	LDA #$2C       ; Palette 3
C3/5201:	8529    	STA $29        ; Color: Blue
C3/5203:	A0915C  	LDY #$5C91     ; Text pointer
C3/5206:	20F902  	JSR $02F9      ; Draw "Lore"
C3/5209:	20AC61  	JSR $61AC      ; Create portrait
C3/520C:	4C4D0F  	JMP $0F4D      ; Queue BG3 upload

Build Lore list
C3/520F:	A2899D  	LDX #$9D89     ; 7E/9D89
C3/5212:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5215:	A600    	LDX $00        ; Index: 0
C3/5217:	64E0    	STZ $E0        ; 1st: Condemned
C3/5219:	A00800  	LDY #$0008     ; Lores left: 8
C3/521C:	BD291D  	LDA $1D29,X    ; 8 known lores
C3/521F:	6A      	ROR A          ; Got current?
C3/5220:	48      	PHA            ; Save 8 lores
C3/5221:	9007    	BCC $522A      ; Blank if not
C3/5223:	A5E0    	LDA $E0        ; Lore number
C3/5225:	8D8021  	STA $2180      ; Add to list
C3/5228:	8005    	BRA $522F      ; Skip 2 lines
C3/522A:	A9FF    	LDA #$FF       ; Esper: None
C3/522C:	8D8021  	STA $2180      ; Add to list
C3/522F:	E6E0    	INC $E0        ; Lore number +1
C3/5231:	68      	PLA            ; 8 known lores
C3/5232:	88      	DEY            ; Lores left -1
C3/5233:	D0EA    	BNE $521F      ; Loop till last
C3/5235:	E8      	INX            ; Point to next 8
C3/5236:	E00300  	CPX #$0003     ; Done 24 lores?
C3/5239:	D0DE    	BNE $5219      ; Loop if not
C3/523B:	60      	RTS

Build and draw Lore list
C3/523C:	200F52  	JSR $520F      ; Build Lore list
C3/523F:	20F783  	JSR $83F7      ; Define $E5, $E6
C3/5242:	A00800  	LDY #$0008     ; Lores left: 8
C3/5245:	5A      	PHY            ; Save counter
C3/5246:	205652  	JSR $5256      ; Draw name, cost
C3/5249:	A5E6    	LDA $E6        ; BG1 write row
C3/524B:	1A      	INC A          ; Go 1 row down
C3/524C:	1A      	INC A          ; Go 1 row down
C3/524D:	291F    	AND #$1F       ; Stay in limits
C3/524F:	85E6    	STA $E6        ; Save changes
C3/5251:	7A      	PLY            ; Lores left
C3/5252:	88      	DEY            ; One less left
C3/5253:	D0F0    	BNE $5245      ; Loop till last
C3/5255:	60      	RTS

Prepare to and draw Lore's name and MP cost
C3/5256:	A920    	LDA #$20       ; Palette 0
C3/5258:	8529    	STA $29        ; Color: User's
C3/525A:	206652  	JSR $5266      ; Define source
C3/525D:	A20300  	LDX #$0003     ; X: 3
C3/5260:	207552  	JSR $5275      ; Draw string
C3/5263:	E6E5    	INC $E5        ; Lore slot +1
C3/5265:	60      	RTS

Set source for loading Lore name
C3/5266:	A00A00  	LDY #$000A     ; Letters: 10
C3/5269:	84EB    	STY $EB        ; Set src size
C3/526B:	A0FDF9  	LDY #$F9FD     ; E6/F9FD
C3/526E:	84EF    	STY $EF        ; Set src LBs
C3/5270:	A9E6    	LDA #$E6       ; Bank: E6
C3/5272:	85F1    	STA $F1        ; Set src HB
C3/5274:	60      	RTS

Draw Lore's name and MP cost
C3/5275:	A5E6    	LDA $E6        ; BG1 write row
C3/5277:	1A      	INC A          ; Go 1 row down
C3/5278:	209F80  	JSR $809F      ; Compute map ptr
C3/527B:	C220    	REP #$20       ; 16-bit A
C3/527D:	8A      	TXA            ; ...
C3/527E:	8F899E7E	STA $7E9E89    ; Set position
C3/5282:	E220    	SEP #$20       ; 8-bit A
C3/5284:	7B      	TDC            ; Clear A
C3/5285:	A5E5    	LDA $E5        ; Lore slot
C3/5287:	AA      	TAX            ; Index it
C3/5288:	BF899D7E	LDA $7E9D89,X  ; Lore in slot
C3/528C:	C9FF    	CMP #$FF       ; None?
C3/528E:	F030    	BEQ $52C0      ; Blank if so
C3/5290:	A5E5    	LDA $E5        ; Lore slot
C3/5292:	206784  	JSR $8467      ; Load name
C3/5295:	A2959E  	LDX #$9E95     ; 7E/9E95
C3/5298:	8E8121  	STX $2181      ; Set WRAM LBs
C3/529B:	A9C7    	LDA #$C7       ; Char: ""
C3/529D:	8D8021  	STA $2180      ; Add to string
C3/52A0:	A5E5    	LDA $E5        ; Lore slot
C3/52A2:	18      	CLC            ; Prepare ADC
C3/52A3:	698B    	ADC #$8B       ; Get attack ID
C3/52A5:	200D51  	JSR $510D      ; Define MP cost
C3/52A8:	20E004  	JSR $04E0      ; Turn into text
C3/52AB:	A5F7    	LDA $F7        ; Hundreds digit
C3/52AD:	8D8021  	STA $2180      ; Add to string
C3/52B0:	A5F8    	LDA $F8        ; Tens digit
C3/52B2:	8D8021  	STA $2180      ; Add to string
C3/52B5:	A5F9    	LDA $F9        ; Ones digit
C3/52B7:	8D8021  	STA $2180      ; Add to string
C3/52BA:	9C8021  	STZ $2180      ; End string
C3/52BD:	4CD97F  	JMP $7FD9      ; Draw string

Fork: Blank Lore slot
C3/52C0:	A00E00  	LDY #$000E     ; Letters: 14
C3/52C3:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/52C6:	8E8121  	STX $2181      ; Set WRAM LBs
C3/52C9:	A9FF    	LDA #$FF       ; Space char
C3/52CB:	8D8021  	STA $2180      ; Add to string
C3/52CE:	88      	DEY            ; One less left
C3/52CF:	D0FA    	BNE $52CB      ; Loop till last
C3/52D1:	9C8021  	STZ $2180      ; End string
C3/52D4:	4CD97F  	JMP $7FD9      ; Draw 14 spaces

Draw SwdTech list and menu title, create portrait
C3/52D7:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/52DA:	206E53  	JSR $536E      ; Build tech list
C3/52DD:	A920    	LDA #$20       ; Palette 0
C3/52DF:	8529    	STA $29        ; Color: User's
C3/52E1:	20F452  	JSR $52F4      ; Draw tech list
C3/52E4:	A92C    	LDA #$2C       ; Palette 3
C3/52E6:	8529    	STA $29        ; Color: Blue
C3/52E8:	A0B85C  	LDY #$5CB8     ; Text pointer
C3/52EB:	20F902  	JSR $02F9      ; Draw "SwdTech"
C3/52EE:	20AC61  	JSR $61AC      ; Create portrait
C3/52F1:	4C4D0F  	JMP $0F4D      ; Queue BG3 upload

Draw SwdTech list
C3/52F4:	20F783  	JSR $83F7      ; Define $E5, $E6
C3/52F7:	E6E6    	INC $E6        ; BG1 write row +1
C3/52F9:	64E5    	STZ $E5        ; Tech slot: 1
C3/52FB:	A00400  	LDY #$0004     ; Rows left: 4
C3/52FE:	5A      	PHY            ; Save counter
C3/52FF:	201153  	JSR $5311      ; Draw 2 names
C3/5302:	A5E6    	LDA $E6        ; BG1 write row
C3/5304:	1A      	INC A          ; Go 1 row down
C3/5305:	1A      	INC A          ; Go 1 row down
C3/5306:	1A      	INC A          ; Go 1 row down
C3/5307:	1A      	INC A          ; Go 1 row down
C3/5308:	291F    	AND #$1F       ; Stay in limits
C3/530A:	85E6    	STA $E6        ; Save changes
C3/530C:	7A      	PLY            ; Rows left
C3/530D:	88      	DEY            ; One less left
C3/530E:	D0EE    	BNE $52FE      ; Loop till last
C3/5310:	60      	RTS

Draw a row of two SwdTechs
C3/5311:	202853  	JSR $5328      ; Define source
C3/5314:	A20300  	LDX #$0003     ; X: 3
C3/5317:	203753  	JSR $5337      ; Draw tech A
C3/531A:	E6E5    	INC $E5        ; Tech slot +1
C3/531C:	202853  	JSR $5328      ; Define source
C3/531F:	A21100  	LDX #$0011     ; X: 17
C3/5322:	203753  	JSR $5337      ; Draw tech B
C3/5325:	E6E5    	INC $E5        ; Tech slot +1
C3/5327:	60      	RTS

Set source for loading SwdTech name
C3/5328:	A00C00  	LDY #$000C     ; Letters: 12
C3/532B:	84EB    	STY $EB        ; Set src size
C3/532D:	A0403C  	LDY #$3C40     ; CF/3C40
C3/5330:	84EF    	STY $EF        ; Set src LBs
C3/5332:	A9CF    	LDA #$CF       ; Bank: CF
C3/5334:	85F1    	STA $F1        ; Set src HB
C3/5336:	60      	RTS

Draw SwdTech name
C3/5337:	A5E6    	LDA $E6        ; BG1 write row
C3/5339:	209F80  	JSR $809F      ; Compute map ptr
C3/533C:	C220    	REP #$20       ; 16-bit A
C3/533E:	8A      	TXA            ; ...
C3/533F:	8F899E7E	STA $7E9E89    ; Set position
C3/5343:	E220    	SEP #$20       ; 8-bit A
C3/5345:	7B      	TDC            ; Clear A
C3/5346:	A5E5    	LDA $E5        ; Tech slot
C3/5348:	AA      	TAX            ; Index it
C3/5349:	BF899D7E	LDA $7E9D89,X  ; Tech in slot
C3/534D:	C9FF    	CMP #$FF       ; None?
C3/534F:	F006    	BEQ $5357      ; Blank if so
C3/5351:	206784  	JSR $8467      ; Load name
C3/5354:	4CD97F  	JMP $7FD9      ; Draw name

Fork: Blank SwdTech slot
C3/5357:	A00C00  	LDY #$000C     ; Spaces: 12
C3/535A:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/535D:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5360:	A9FF    	LDA #$FF       ; Space char
C3/5362:	8D8021  	STA $2180      ; Add to string
C3/5365:	88      	DEY            ; One less left
C3/5366:	D0FA    	BNE $5362      ; Loop till last
C3/5368:	9C8021  	STZ $2180      ; End string
C3/536B:	4CD97F  	JMP $7FD9      ; Draw 12 spaces

Build SwdTech list
C3/536E:	A2899D  	LDX #$9D89     ; 7E/9D89
C3/5371:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5374:	A00800  	LDY #$0008     ; Techs left: 8
C3/5377:	64E0    	STZ $E0        ; 1st: Dispatch
C3/5379:	7B      	TDC            ; ...
C3/537A:	ADF71C  	LDA $1CF7      ; 8 known techs
C3/537D:	6A      	ROR A          ; Got current?
C3/537E:	48      	PHA            ; Save 8 techs
C3/537F:	9004    	BCC $5385      ; Blank if not
C3/5381:	A5E0    	LDA $E0        ; SwdTech number
C3/5383:	8002    	BRA $5387      ; Skip a line
C3/5385:	A9FF    	LDA #$FF       ; SwdTech: None
C3/5387:	8D8021  	STA $2180      ; Add to list
C3/538A:	E6E0    	INC $E0        ; Tech number +1
C3/538C:	68      	PLA            ; 8 known techs
C3/538D:	88      	DEY            ; Techs left -1
C3/538E:	D0ED    	BNE $537D      ; Loop till last
C3/5390:	60      	RTS

Draw Rage list and menu title, create portrait
C3/5391:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/5394:	20A753  	JSR $53A7      ; Draw Rage list
C3/5397:	A92C    	LDA #$2C       ; Palette 3
C3/5399:	8529    	STA $29        ; Color: Blue
C3/539B:	A0985C  	LDY #$5C98     ; Text pointer
C3/539E:	20F902  	JSR $02F9      ; Draw "Rage"
C3/53A1:	20AC61  	JSR $61AC      ; Create portrait
C3/53A4:	4C4D0F  	JMP $0F4D      ; Queue BG3 upload

Build and draw Rage list
C3/53A7:	20C153  	JSR $53C1      ; Build Rage list
C3/53AA:	20F783  	JSR $83F7      ; Define $E5, $E6
C3/53AD:	A00900  	LDY #$0009     ; Rows left: 9...
C3/53B0:	5A      	PHY            ; Save counter
C3/53B1:	20EE53  	JSR $53EE      ; Draw 2 Rages
C3/53B4:	A5E6    	LDA $E6        ; BG1 write row
C3/53B6:	1A      	INC A          ; Go 1 row down
C3/53B7:	1A      	INC A          ; Go 1 row down
C3/53B8:	291F    	AND #$1F       ; Stay in limits
C3/53BA:	85E6    	STA $E6        ; Save changes
C3/53BC:	7A      	PLY            ; Rows left
C3/53BD:	88      	DEY            ; One less left
C3/53BE:	D0F0    	BNE $53B0      ; Loop till last
C3/53C0:	60      	RTS

Build Rage list
C3/53C1:	A2899D  	LDX #$9D89     ; 7E/9D89
C3/53C4:	8E8121  	STX $2181      ; Set WRAM LBs
C3/53C7:	A600    	LDX $00        ; Pack index: 0
C3/53C9:	64E0    	STZ $E0        ; Current: Guard
C3/53CB:	A00800  	LDY #$0008     ; Rages left: 8
C3/53CE:	BD2C1D  	LDA $1D2C,X    ; 8 known Rages
C3/53D1:	6A      	ROR A          ; Got current?
C3/53D2:	48      	PHA            ; Save 8 Rages
C3/53D3:	9007    	BCC $53DC      ; Blank if not
C3/53D5:	A5E0    	LDA $E0        ; Rage number
C3/53D7:	8D8021  	STA $2180      ; Add to list
C3/53DA:	8005    	BRA $53E1      ; Skip 2 lines
C3/53DC:	A9FF    	LDA #$FF       ; Rage: None
C3/53DE:	8D8021  	STA $2180      ; Add to list
C3/53E1:	E6E0    	INC $E0        ; Rage number +1
C3/53E3:	68      	PLA            ; 8 known Rages
C3/53E4:	88      	DEY            ; Rages left -1
C3/53E5:	D0EA    	BNE $53D1      ; Loop till last
C3/53E7:	E8      	INX            ; Point to next 8
C3/53E8:	E02000  	CPX #$0020     ; Done 256 Rages?
C3/53EB:	D0DE    	BNE $53CB      ; Loop if not
C3/53ED:	60      	RTS

Draw a row of two Rages
C3/53EE:	A920    	LDA #$20       ; Palette 0
C3/53F0:	8529    	STA $29        ; Color: User's
C3/53F2:	200954  	JSR $5409      ; Define source
C3/53F5:	A20500  	LDX #$0005     ; X: 5
C3/53F8:	201854  	JSR $5418      ; Draw Rage A
C3/53FB:	E6E5    	INC $E5        ; Rage slot +1
C3/53FD:	200954  	JSR $5409      ; Define source
C3/5400:	A21300  	LDX #$0013     ; X: 19
C3/5403:	201854  	JSR $5418      ; Draw Rage B
C3/5406:	E6E5    	INC $E5        ; Rage slot +1
C3/5408:	60      	RTS

Set source for loading enemy name
C3/5409:	A00A00  	LDY #$000A     ; Letters: 10
C3/540C:	84EB    	STY $EB        ; Set src size
C3/540E:	A050C0  	LDY #$C050     ; CF/C050
C3/5411:	84EF    	STY $EF        ; Set src LBs
C3/5413:	A9CF    	LDA #$CF       ; Bank: CF
C3/5415:	85F1    	STA $F1        ; Set src HB
C3/5417:	60      	RTS

Draw Rage name
C3/5418:	A5E6    	LDA $E6        ; BG1 write row
C3/541A:	1A      	INC A          ; Go 1 row down
C3/541B:	209F80  	JSR $809F      ; Compute map ptr
C3/541E:	C220    	REP #$20       ; 16-bit A
C3/5420:	8A      	TXA            ; ...
C3/5421:	8F899E7E	STA $7E9E89    ; Set position
C3/5425:	E220    	SEP #$20       ; 8-bit A
C3/5427:	7B      	TDC            ; Clear A
C3/5428:	A5E5    	LDA $E5        ; Rage slot
C3/542A:	AA      	TAX            ; Index it
C3/542B:	BF899D7E	LDA $7E9D89,X  ; Rage in slot
C3/542F:	C9FF    	CMP #$FF       ; None or Pugs?
C3/5431:	F008    	BEQ $543B      ; Blank if so
C3/5433:	A5E5    	LDA $E5        ; Rage slot
C3/5435:	206784  	JSR $8467      ; Load name
C3/5438:	4CD97F  	JMP $7FD9      ; Draw name

Fork: Blank Rage slot
C3/543B:	A00A00  	LDY #$000A     ; Spaces: 10
C3/543E:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/5441:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5444:	A9FF    	LDA #$FF       ; Space char
C3/5446:	8D8021  	STA $2180      ; Add to string
C3/5449:	88      	DEY            ; One less left
C3/544A:	D0FA    	BNE $5446      ; Loop till last
C3/544C:	9C8021  	STZ $2180      ; End string
C3/544F:	4CD97F  	JMP $7FD9      ; Draw 10 spaces

Draw esper list and menu title, create portrait
C3/5452:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/5455:	A920    	LDA #$20       ; Palette 0
C3/5457:	8529    	STA $29        ; Color: User's
C3/5459:	206C54  	JSR $546C      ; Draw esper list
C3/545C:	A92C    	LDA #$2C       ; Palette 3
C3/545E:	8529    	STA $29        ; Color: Blue
C3/5460:	A0A75C  	LDY #$5CA7     ; Text pointer
C3/5463:	20F902  	JSR $02F9      ; Draw "Espers"
C3/5466:	20AC61  	JSR $61AC      ; Create portrait
C3/5469:	4C4D0F  	JMP $0F4D      ; Queue BG3 upload

Build and draw esper list
C3/546C:	208654  	JSR $5486      ; Build esper list
C3/546F:	20F783  	JSR $83F7      ; Define $E5, $E6
C3/5472:	A00800  	LDY #$0008     ; Rows left: 8
C3/5475:	5A      	PHY            ; Save counter
C3/5476:	20E354  	JSR $54E3      ; Draw 2 espers
C3/5479:	A5E6    	LDA $E6        ; BG1 write row
C3/547B:	1A      	INC A          ; Go 1 row down
C3/547C:	1A      	INC A          ; Go 1 row down
C3/547D:	291F    	AND #$1F       ; Stay in limits
C3/547F:	85E6    	STA $E6        ; Save changes
C3/5481:	7A      	PLY            ; Rows left
C3/5482:	88      	DEY            ; One less left
C3/5483:	D0F0    	BNE $5475      ; Loop till last
C3/5485:	60      	RTS

Build sorted esper list
C3/5486:	A2ED9D  	LDX #$9DED     ; 7E/9DED
C3/5489:	8E8121  	STX $2181      ; Set WRAM LBs
C3/548C:	A600    	LDX $00        ; Pack index: 0
C3/548E:	64E0    	STZ $E0        ; Current: Ramuh
C3/5490:	A00800  	LDY #$0008     ; Espers left: 8
C3/5493:	BD691A  	LDA $1A69,X    ; 8 owned espers
C3/5496:	6A      	ROR A          ; Got current?
C3/5497:	48      	PHA            ; Save 8 espers
C3/5498:	9007    	BCC $54A1      ; Blank if not
C3/549A:	A5E0    	LDA $E0        ; Esper number
C3/549C:	8D8021  	STA $2180      ; Add to list
C3/549F:	8005    	BRA $54A6      ; Skip 2 lines
C3/54A1:	A9FF    	LDA #$FF       ; Esper: None
C3/54A3:	8D8021  	STA $2180      ; Add to list
C3/54A6:	E6E0    	INC $E0        ; Esper number +1
C3/54A8:	68      	PLA            ; 8 owned espers
C3/54A9:	88      	DEY            ; Espers left -1
C3/54AA:	D0EA    	BNE $5496      ; Loop till last
C3/54AC:	E8      	INX            ; Point to next 8
C3/54AD:	E00400  	CPX #$0004     ; Done 32 espers?
C3/54B0:	D0DE    	BNE $5490      ; Loop if not

Fork: Clear sorted list
C3/54B2:	A2899D  	LDX #$9D89     ; 7E/9D89
C3/54B5:	8E8121  	STX $2181      ; Set WRAM LBs
C3/54B8:	A9FF    	LDA #$FF       ; Esper: None
C3/54BA:	A21D00  	LDX #$001D     ; Slots left: 29
C3/54BD:	8D8021  	STA $2180      ; Clear list slot
C3/54C0:	CA      	DEX            ; One less left
C3/54C1:	D0FA    	BNE $54BD      ; Loop till last

Fork: Build sorted list
C3/54C3:	A2ED9D  	LDX #$9DED     ; 7E/9DED
C3/54C6:	8E8121  	STX $2181      ; Set WRAM LBs
C3/54C9:	A01B00  	LDY #$001B     ; Slots left: 27
C3/54CC:	7B      	TDC            ; Clear A
C3/54CD:	AD8021  	LDA $2180      ; Esper in slot
C3/54D0:	300D    	BMI $54DF      ; Skip if none
C3/54D2:	48      	PHA            ; Memorize it
C3/54D3:	AA      	TAX            ; Index it
C3/54D4:	BFB5F9D1	LDA $D1F9B5,X  ; Intended slot
C3/54D8:	3A      	DEC A          ; Subtract 1
C3/54D9:	AA      	TAX            ; Index it
C3/54DA:	68      	PLA            ; Esper number
C3/54DB:	9F899D7E	STA $7E9D89,X  ; Add to new list
C3/54DF:	88      	DEY            ; One less esper
C3/54E0:	D0EB    	BNE $54CD      ; Loop till last
C3/54E2:	60      	RTS

Draw a row of two esper names with MP cost
C3/54E3:	20FA54  	JSR $54FA      ; Define source
C3/54E6:	A20300  	LDX #$0003     ; X: 3
C3/54E9:	200955  	JSR $5509      ; Draw esper A
C3/54EC:	E6E5    	INC $E5        ; Esper slot +1
C3/54EE:	20FA54  	JSR $54FA      ; Define source
C3/54F1:	A21100  	LDX #$0011     ; X: 17
C3/54F4:	200955  	JSR $5509      ; Draw esper B
C3/54F7:	E6E5    	INC $E5        ; Esper slot +1
C3/54F9:	60      	RTS

Set source for loading esper name
C3/54FA:	A00800  	LDY #$0008     ; Letters: 8
C3/54FD:	84EB    	STY $EB        ; Set src size
C3/54FF:	A0E1F6  	LDY #$F6E1     ; E6/F6E1
C3/5502:	84EF    	STY $EF        ; Set src LBs
C3/5504:	A9E6    	LDA #$E6       ; Bank: E6
C3/5506:	85F1    	STA $F1        ; Set src HB
C3/5508:	60      	RTS

Draw esper's name and MP cost
C3/5509:	A5E6    	LDA $E6        ; BG1 write row
C3/550B:	1A      	INC A          ; Go 1 row down
C3/550C:	209F80  	JSR $809F      ; Compute map ptr
C3/550F:	C220    	REP #$20       ; 16-bit A
C3/5511:	8A      	TXA            ; ...
C3/5512:	8F899E7E	STA $7E9E89    ; Set position
C3/5516:	E220    	SEP #$20       ; 8-bit A
C3/5518:	7B      	TDC            ; Clear A
C3/5519:	A5E5    	LDA $E5        ; Esper slot
C3/551B:	AA      	TAX            ; Index it
C3/551C:	BF899D7E	LDA $7E9D89,X  ; Esper in slot
C3/5520:	C9FF    	CMP #$FF       ; None?
C3/5522:	F039    	BEQ $555D      ; Blank if so
C3/5524:	207455  	JSR $5574      ; Choose palette
C3/5527:	206784  	JSR $8467      ; Load name
C3/552A:	7B      	TDC            ; ...
C3/552B:	A5E5    	LDA $E5        ; Esper slot
C3/552D:	AA      	TAX            ; Index it
C3/552E:	BF899D7E	LDA $7E9D89,X  ; Esper in slot
C3/5532:	18      	CLC            ; Prepare ADC
C3/5533:	6936    	ADC #$36       ; Get attack ID
C3/5535:	200D51  	JSR $510D      ; Define MP cost
C3/5538:	48      	PHA            ; Memorize it
C3/5539:	A2939E  	LDX #$9E93     ; 7E/9E93
C3/553C:	8E8121  	STX $2181      ; Set WRAM LBs
C3/553F:	A9C7    	LDA #$C7       ; Char: ""
C3/5541:	8D8021  	STA $2180      ; Add to string
C3/5544:	68      	PLA            ; MP cost
C3/5545:	20E004  	JSR $04E0      ; Turn into text
C3/5548:	A5F7    	LDA $F7        ; Hundreds digit
C3/554A:	8D8021  	STA $2180      ; Add to string
C3/554D:	A5F8    	LDA $F8        ; Tens digit
C3/554F:	8D8021  	STA $2180      ; Add to string
C3/5552:	A5F9    	LDA $F9        ; Ones digit
C3/5554:	8D8021  	STA $2180      ; Add to string
C3/5557:	9C8021  	STZ $2180      ; End string
C3/555A:	4CD97F  	JMP $7FD9      ; Draw string

Fork: Blank esper slot
C3/555D:	A00C00  	LDY #$000C     ; Spaces: 12
C3/5560:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/5563:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5566:	A9FF    	LDA #$FF       ; Space char
C3/5568:	8D8021  	STA $2180      ; Add to string
C3/556B:	88      	DEY            ; One less left
C3/556C:	D0FA    	BNE $5568      ; Loop till last
C3/556E:	9C8021  	STZ $2180      ; End string
C3/5571:	4CD97F  	JMP $7FD9      ; Draw 12 spaces

Define esper name color
C3/5574:	85E0    	STA $E0        ; Save esper
C3/5576:	A600    	LDX $00        ; 1st: Terra
C3/5578:	A01000  	LDY #$0010     ; Actors: 16
C3/557B:	BD1E16  	LDA $161E,X    ; Actor's esper
C3/557E:	C5E0    	CMP $E0        ; Matches ours?
C3/5580:	F011    	BEQ $5593      ; Gray out if so
C3/5582:	C220    	REP #$20       ; 16-bit A
C3/5584:	8A      	TXA            ; Actor address
C3/5585:	18      	CLC            ; Prepare ADC
C3/5586:	692500  	ADC #$0025     ; Actor slot +1
C3/5589:	AA      	TAX            ; Reindex it
C3/558A:	E220    	SEP #$20       ; 8-bit A
C3/558C:	88      	DEY            ; One less actor
C3/558D:	D0EC    	BNE $557B      ; Loop till last
C3/558F:	A920    	LDA #$20       ; Color: User's
C3/5591:	8002    	BRA $5595      ; Skip a line
C3/5593:	A928    	LDA #$28       ; Color: Gray
C3/5595:	8529    	STA $29        ; Set palette
C3/5597:	A5E0    	LDA $E0        ; Esper to draw
C3/5599:	60      	RTS

Draw "<actor> has it!" in esper data menu
C3/559A:	A920    	LDA #$20       ; Palette 0
C3/559C:	8529    	STA $29        ; Color: User's
C3/559E:	C220    	REP #$20       ; 16-bit A
C3/55A0:	A9CD40  	LDA #$40CD     ; Tilemap ptr
C3/55A3:	8F899E7E	STA $7E9E89    ; Set position
C3/55A7:	A98B9E  	LDA #$9E8B     ; 7E/9E8B
C3/55AA:	8D8121  	STA $2181      ; Set WRAM LBs
C3/55AD:	E220    	SEP #$20       ; 8-bit A
C3/55AF:	A00600  	LDY #$0006     ; Letters: 6
C3/55B2:	BD0216  	LDA $1602,X    ; Name letter
C3/55B5:	C9FF    	CMP #$FF       ; Terminator?
C3/55B7:	F007    	BEQ $55C0      ; Done if so
C3/55B9:	8D8021  	STA $2180      ; Add to string
C3/55BC:	E8      	INX            ; Point to next
C3/55BD:	88      	DEY            ; One less left
C3/55BE:	D0F2    	BNE $55B2      ; Loop till last
C3/55C0:	A600    	LDX $00        ; Letter: 1st
C3/55C2:	BFD95CC3	LDA $C35CD9,X  ; Message letter
C3/55C6:	F006    	BEQ $55CE      ; Done if end
C3/55C8:	8D8021  	STA $2180      ; Add to string
C3/55CB:	E8      	INX            ; Point to next
C3/55CC:	80F4    	BRA $55C2      ; Do next letter
C3/55CE:	9C8021  	STZ $2180      ; End string
C3/55D1:	4CD97F  	JMP $7FD9      ; Draw message

Draw Blitz inputs and menu title, create portrait
C3/55D4:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/55D7:	20EA55  	JSR $55EA      ; Draw inputs
C3/55DA:	A92C    	LDA #$2C       ; Palette 3
C3/55DC:	8529    	STA $29        ; Color: Blue
C3/55DE:	A0B05C  	LDY #$5CB0     ; Text pointer
C3/55E1:	20F902  	JSR $02F9      ; Draw "Blitz"
C3/55E4:	20AC61  	JSR $61AC      ; Create portrait
C3/55E7:	4C4D0F  	JMP $0F4D      ; Queue BG3 upload

Build Blitz list and draw Blitz inputs
C3/55EA:	201B56  	JSR $561B      ; Build Blitz list
C3/55ED:	20F783  	JSR $83F7      ; Define $E5, $E6
C3/55F0:	64E5    	STZ $E5        ; Blitz slot: 1
C3/55F2:	E6E6    	INC $E6        ; BG1 write row +1
C3/55F4:	A00400  	LDY #$0004     ; Rows left: 4
C3/55F7:	5A      	PHY            ; Save counter
C3/55F8:	200A56  	JSR $560A      ; Draw inputs x2
C3/55FB:	A5E6    	LDA $E6        ; BG1 write row
C3/55FD:	1A      	INC A          ; Go 1 row down
C3/55FE:	1A      	INC A          ; Go 1 row down
C3/55FF:	1A      	INC A          ; Go 1 row down
C3/5600:	1A      	INC A          ; Go 1 row down
C3/5601:	291F    	AND #$1F       ; Stay in limits
C3/5603:	85E6    	STA $E6        ; Save changes
C3/5605:	7A      	PLY            ; Rows left
C3/5606:	88      	DEY            ; One less left
C3/5607:	D0EE    	BNE $55F7      ; Loop till last
C3/5609:	60      	RTS

Draw a row of two sets of Blitz inputs
C3/560A:	A20400  	LDX #$0004     ; X: 4
C3/560D:	204356  	JSR $5643      ; Draw inputs A
C3/5610:	E6E5    	INC $E5        ; Blitz slot +1
C3/5612:	A21200  	LDX #$0012     ; X: 18
C3/5615:	204356  	JSR $5643      ; Draw inputs B
C3/5618:	E6E5    	INC $E5        ; Blitz slot +1
C3/561A:	60      	RTS

Build Blitz list
C3/561B:	AD281D  	LDA $1D28      ; Known Blitzes
C3/561E:	8003    	BRA $5623      ; Run Dance code

Build Dance list
C3/5620:	AD4C1D  	LDA $1D4C      ; Known Dances
C3/5623:	A2899D  	LDX #$9D89     ; 7E/9D89
C3/5626:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5629:	A600    	LDX $00        ; 1st: Wind Song
C3/562B:	A00800  	LDY #$0008     ; Dances left: 8
C3/562E:	6A      	ROR A          ; Know current?
C3/562F:	48      	PHA            ; Save 8 Dances
C3/5630:	9006    	BCC $5638      ; Blank if not
C3/5632:	8A      	TXA            ; Dance number
C3/5633:	8D8021  	STA $2180      ; Add to list
C3/5636:	8005    	BRA $563D      ; Skip 2 lines
C3/5638:	A9FF    	LDA #$FF       ; Dance: None
C3/563A:	8D8021  	STA $2180      ; Add to list
C3/563D:	E8      	INX            ; Dance number +1
C3/563E:	68      	PLA            ; Known Dances
C3/563F:	88      	DEY            ; One less Dance
C3/5640:	D0EC    	BNE $562E      ; Loop till last
C3/5642:	60      	RTS

Draw Blitz's inputs
C3/5643:	A5E6    	LDA $E6        ; BG1 write row
C3/5645:	209F80  	JSR $809F      ; Compute map ptr
C3/5648:	C220    	REP #$20       ; 16-bit A
C3/564A:	8A      	TXA            ; ...
C3/564B:	8F899E7E	STA $7E9E89    ; Set position
C3/564F:	E220    	SEP #$20       ; 8-bit A
C3/5651:	7B      	TDC            ; Clear A
C3/5652:	A5E5    	LDA $E5        ; Blitz slot
C3/5654:	AA      	TAX            ; Index it
C3/5655:	BF899D7E	LDA $7E9D89,X  ; Blitz in slot
C3/5659:	C9FF    	CMP #$FF       ; None?
C3/565B:	F00F    	BEQ $566C      ; Blank if so
C3/565D:	208356  	JSR $5683      ; Build tilemap
C3/5660:	A0899E  	LDY #$9E89     ; 7E/9E89
C3/5663:	84E7    	STY $E7        ; Set src LBs
C3/5665:	A97E    	LDA #$7E       ; Bank: 7E
C3/5667:	85E9    	STA $E9        ; Set src HB
C3/5669:	4CBC56  	JMP $56BC      ; Move tilemap

Fork: Blank Blitz slot
C3/566C:	A00800  	LDY #$0008     ; Spaces: 8
C3/566F:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/5672:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5675:	A9FF    	LDA #$FF       ; Space char
C3/5677:	8D8021  	STA $2180      ; Add to string
C3/567A:	88      	DEY            ; One less left
C3/567B:	D0FA    	BNE $5677      ; Loop till last
C3/567D:	9C8021  	STZ $2180      ; End string
C3/5680:	4CD97F  	JMP $7FD9      ; Draw 8 spaces

Build tilemap for Blitz's inputs
C3/5683:	48      	PHA            ; Save Blitz
C3/5684:	0A      	ASL A          ; x2
C3/5685:	0A      	ASL A          ; x4
C3/5686:	0A      	ASL A          ; x8
C3/5687:	85E0    	STA $E0        ; Memorize it
C3/5689:	68      	PLA            ; Blitz
C3/568A:	0A      	ASL A          ; x2
C3/568B:	0A      	ASL A          ; x4
C3/568C:	18      	CLC            ; ...
C3/568D:	65E0    	ADC $E0        ; x12
C3/568F:	AA      	TAX            ; Index it
C3/5690:	A08B9E  	LDY #$9E8B     ; 7E/9E8B
C3/5693:	8C8121  	STY $2181      ; Set WRAM LBs
C3/5696:	A00A00  	LDY #$000A     ; Inputs: 10
C3/5699:	DA      	PHX            ; Save index
C3/569A:	BF407AC4	LDA $C47A40,X  ; Blitz input
C3/569E:	0A      	ASL A          ; Double it
C3/569F:	AA      	TAX            ; Index it
C3/56A0:	BF1C5CC3	LDA $C35C1C,X  ; Tile number
C3/56A4:	8D8021  	STA $2180      ; Save in WRAM
C3/56A7:	E8      	INX            ; Index +1
C3/56A8:	BF1C5CC3	LDA $C35C1C,X  ; Attributes
C3/56AC:	8D8021  	STA $2180      ; Save in WRAM
C3/56AF:	E8      	INX            ; ...
C3/56B0:	FA      	PLX            ; Input index
C3/56B1:	E8      	INX            ; Input index +1
C3/56B2:	88      	DEY            ; One less input
C3/56B3:	D0E4    	BNE $5699      ; Loop till last
C3/56B5:	9C8021  	STZ $2180      ; End string LB
C3/56B8:	9C8021  	STZ $2180      ; End string HB
C3/56BB:	60      	RTS

Apply tilemap for Blitz's inputs
C3/56BC:	A400    	LDY $00        ; Index: 0
C3/56BE:	C220    	REP #$20       ; 16-bit A
C3/56C0:	A7E7    	LDA [$E7]      ; Tilemap ptr
C3/56C2:	85EB    	STA $EB        ; Set dest LBs
C3/56C4:	E6E7    	INC $E7        ; Source +1
C3/56C6:	E6E7    	INC $E7        ; Source +1
C3/56C8:	E220    	SEP #$20       ; 8-bit A
C3/56CA:	A97E    	LDA #$7E       ; Bank: 7E
C3/56CC:	85ED    	STA $ED        ; Set dest HB
C3/56CE:	C220    	REP #$20       ; 16-bit A
C3/56D0:	B7E7    	LDA [$E7],Y    ; Tile data
C3/56D2:	F008    	BEQ $56DC      ; Exit if end
C3/56D4:	97EB    	STA [$EB],Y    ; Add to map
C3/56D6:	E220    	SEP #$20       ; 8-bit A
C3/56D8:	C8      	INY            ; Index +1
C3/56D9:	C8      	INY            ; Index +1
C3/56DA:	80F2    	BRA $56CE      ; Do next tile
C3/56DC:	E220    	SEP #$20       ; 8-bit A
C3/56DE:	60      	RTS

Load esper description
C3/56DF:	20095C  	JSR $5C09      ; Load pointers
C3/56E2:	4C2A57  	JMP $572A      ; Load description

Load Magic description
C3/56E5:	20E35B  	JSR $5BE3      ; Load pointers
C3/56E8:	4C2A57  	JMP $572A      ; Load description

Load Lore description
C3/56EB:	A2707A  	LDX #$7A70     ; ED/7A70
C3/56EE:	86E7    	STX $E7        ; Set ptr loc LBs
C3/56F0:	A2A077  	LDX #$77A0     ; ED/77A0
C3/56F3:	86EB    	STX $EB        ; Set text loc LBs
C3/56F5:	A9ED    	LDA #$ED       ; Bank: ED
C3/56F7:	85E9    	STA $E9        ; Set ptr loc HB
C3/56F9:	A9ED    	LDA #$ED       ; ...
C3/56FB:	85ED    	STA $ED        ; Set text loc HB
C3/56FD:	4C2A57  	JMP $572A      ; Load description

Load SwdTech description
C3/5700:	A2AEFF  	LDX #$FFAE     ; CF/FFAE
C3/5703:	86E7    	STX $E7        ; Set ptr loc LBs
C3/5705:	A200FD  	LDX #$FD00     ; CF/FD00
C3/5708:	86EB    	STX $EB        ; Set text loc LBs
C3/570A:	A9CF    	LDA #$CF       ; Bank: CF
C3/570C:	85E9    	STA $E9        ; Set ptr loc HB
C3/570E:	A9CF    	LDA #$CF       ; ...
C3/5710:	85ED    	STA $ED        ; Set text loc HB
C3/5712:	4C2A57  	JMP $572A      ; Load description

Load Blitz description
C3/5715:	A29EFF  	LDX #$FF9E     ; CF/FF9E
C3/5718:	86E7    	STX $E7        ; Set ptr loc LBs
C3/571A:	A200FC  	LDX #$FC00     ; CF/FC00
C3/571D:	86EB    	STX $EB        ; Set text loc LBs
C3/571F:	A9CF    	LDA #$CF       ; Bank: CF
C3/5721:	85E9    	STA $E9        ; Set ptr loc HB
C3/5723:	A9CF    	LDA #$CF       ; ...
C3/5725:	85ED    	STA $ED        ; Set text loc HB
C3/5727:	4C2A57  	JMP $572A      ; ...

Load skill or item description
C3/572A:	A2C99E  	LDX #$9EC9     ; 7E/9EC9
C3/572D:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5730:	7B      	TDC            ; Clear A
C3/5731:	A54B    	LDA $4B        ; List slot
C3/5733:	AA      	TAX            ; Index it
C3/5734:	BF899D7E	LDA $7E9D89,X  ; Skill or item
C3/5738:	C9FF    	CMP #$FF       ; Empty slot?
C3/573A:	F031    	BEQ $576D      ; Blank if so
C3/573C:	C220    	REP #$20       ; 16-bit A
C3/573E:	0A      	ASL A          ; Double it
C3/573F:	A8      	TAY            ; Index it
C3/5740:	B7E7    	LDA [$E7],Y    ; Relative ptr
C3/5742:	A8      	TAY            ; Index it
C3/5743:	E220    	SEP #$20       ; 8-bit A
C3/5745:	B7EB    	LDA [$EB],Y    ; Text character
C3/5747:	F006    	BEQ $574F      ; Branch if 00h
C3/5749:	8D8021  	STA $2180      ; Add to string
C3/574C:	C8      	INY            ; Index +1
C3/574D:	80F6    	BRA $5745      ; Do next char

Fork: Check if terminator (SFC)
C3/574F:	88      	DEY            ; Index -1
C3/5750:	B7EB    	LDA [$EB],Y    ; Previous char
C3/5752:	C8      	INY            ; Index +1
C3/5753:	C91C    	CMP #$1C       ; Command 1C?
C3/5755:	F010    	BEQ $5767      ; Branch if so
C3/5757:	C91D    	CMP #$1D       ; Command 1D?
C3/5759:	F00C    	BEQ $5767      ; Branch if so
C3/575B:	C91E    	CMP #$1E       ; Command 1E?
C3/575D:	F008    	BEQ $5767      ; Branch if so
C3/575F:	C91F    	CMP #$1F       ; Command 1F?
C3/5761:	F004    	BEQ $5767      ; Branch if so
C3/5763:	9C8021  	STZ $2180      ; End string
C3/5766:	60      	RTS

Fork: Resume past control code (SFC)
C3/5767:	9C8021  	STZ $2180      ; Add 00h to msg
C3/576A:	C8      	INY            ; Index +1
C3/576B:	80D8    	BRA $5745      ; Do next char

Fork: Empty slot (space is for item usage menu)
C3/576D:	A9FF    	LDA #$FF       ; Space char
C3/576F:	8D8021  	STA $2180      ; Add to string
C3/5772:	80EF    	BRA $5763      ; End string

Draw Dance list and menu title, create portrait
C3/5774:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/5777:	208A57  	JSR $578A      ; Draw Dance list
C3/577A:	A92C    	LDA #$2C       ; Palette 3
C3/577C:	8529    	STA $29        ; Color: Blue
C3/577E:	A09F5C  	LDY #$5C9F     ; Text pointer
C3/5781:	20F902  	JSR $02F9      ; Draw "Dance"
C3/5784:	20AC61  	JSR $61AC      ; Create portrait
C3/5787:	4C4D0F  	JMP $0F4D      ; Queue BG3 upload

Build and draw Dance list
C3/578A:	202056  	JSR $5620      ; Build Dance list
C3/578D:	20F783  	JSR $83F7      ; Define $E5, $E6
C3/5790:	E6E6    	INC $E6        ; BG1 write row +1
C3/5792:	64E5    	STZ $E5        ; Dance slot: 1
C3/5794:	A00400  	LDY #$0004     ; Rows left: 4
C3/5797:	5A      	PHY            ; Save counter
C3/5798:	20AA57  	JSR $57AA      ; Draw 2 dances
C3/579B:	A5E6    	LDA $E6        ; BG1 write row
C3/579D:	1A      	INC A          ; Go 1 row down
C3/579E:	1A      	INC A          ; Go 1 row down
C3/579F:	1A      	INC A          ; Go 1 row down
C3/57A0:	1A      	INC A          ; Go 1 row down
C3/57A1:	291F    	AND #$1F       ; Stay in limits
C3/57A3:	85E6    	STA $E6        ; Save changes
C3/57A5:	7A      	PLY            ; Rows left
C3/57A6:	88      	DEY            ; One less left
C3/57A7:	D0EE    	BNE $5797      ; Loop till last
C3/57A9:	60      	RTS

Draw a row of two Dance names
C3/57AA:	20C157  	JSR $57C1      ; Define source
C3/57AD:	A20300  	LDX #$0003     ; X: 3
C3/57B0:	20D057  	JSR $57D0      ; Draw Dance A
C3/57B3:	E6E5    	INC $E5        ; Dance slot +1
C3/57B5:	20C157  	JSR $57C1      ; Define source
C3/57B8:	A21100  	LDX #$0011     ; X: 17
C3/57BB:	20D057  	JSR $57D0      ; Draw Dance B
C3/57BE:	E6E5    	INC $E5        ; Dance slot +1
C3/57C0:	60      	RTS

Set source for loading Dance name
C3/57C1:	A00C00  	LDY #$000C     ; Letters: 12
C3/57C4:	84EB    	STY $EB        ; Set src size
C3/57C6:	A09DFF  	LDY #$FF9D     ; E6/FF9D
C3/57C9:	84EF    	STY $EF        ; Set src LBs
C3/57CB:	A9E6    	LDA #$E6       ; Bank: E6
C3/57CD:	85F1    	STA $F1        ; Set src HB
C3/57CF:	60      	RTS

Draw Dance name
C3/57D0:	A5E6    	LDA $E6        ; BG1 write row
C3/57D2:	209F80  	JSR $809F      ; Compute map ptr
C3/57D5:	C220    	REP #$20       ; 16-bit A
C3/57D7:	8A      	TXA            ; ...
C3/57D8:	8F899E7E	STA $7E9E89    ; Set position
C3/57DC:	E220    	SEP #$20       ; 8-bit A
C3/57DE:	7B      	TDC            ; Clear A
C3/57DF:	A5E5    	LDA $E5        ; Dance slot
C3/57E1:	AA      	TAX            ; Index it
C3/57E2:	BF899D7E	LDA $7E9D89,X  ; Dance in slot
C3/57E6:	C9FF    	CMP #$FF       ; Empty slot?
C3/57E8:	F006    	BEQ $57F0      ; Blank if so
C3/57EA:	206784  	JSR $8467      ; Load name
C3/57ED:	4CD97F  	JMP $7FD9      ; Draw name

Fork: Blank Dance slot
C3/57F0:	A00C00  	LDY #$000C     ; Spaces: 12
C3/57F3:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/57F6:	8E8121  	STX $2181      ; Set WRAM LBs
C3/57F9:	A9FF    	LDA #$FF       ; Space char
C3/57FB:	8D8021  	STA $2180      ; Add to string
C3/57FE:	88      	DEY            ; One less left
C3/57FF:	D0FA    	BNE $57FB      ; Loop till last
C3/5801:	9C8021  	STZ $2180      ; End string
C3/5804:	4CD97F  	JMP $7FD9      ; Draw 12 spaces

Set to delete portrait in Skills menu
C3/5807:	7B      	TDC            ; Clear A
C3/5808:	A560    	LDA $60        ; Queue index
C3/580A:	AA      	TAX            ; Index it
C3/580B:	A9FF    	LDA #$FF       ; Null value
C3/580D:	9FC9357E	STA $7E35C9,X  ; Portrait: Off
C3/5811:	60      	RTS

Draw and upload spell usage menu
C3/5812:	20286A  	JSR $6A28      ; Clear BG2 map A
C3/5815:	A03F58  	LDY #$583F     ; C3/583F
C3/5818:	204103  	JSR $0341      ; Draw party box
C3/581B:	A04358  	LDY #$5843     ; C3/5843
C3/581E:	204103  	JSR $0341      ; Draw spell box
C3/5821:	A04758  	LDY #$5847     ; C3/5847
C3/5824:	204103  	JSR $0341      ; Draw cost box
C3/5827:	20520E  	JSR $0E52      ; Upload windows
C3/582A:	20196A  	JSR $6A19      ; Clear BG1 map B
C3/582D:	A0C0FF  	LDY #$FFC0     ; X: -64 = 448
C3/5830:	8435    	STY $35        ; Set BG1 X-Pos
C3/5832:	A902    	LDA #$02       ; Portrait row bit
C3/5834:	0445    	TSB $45        ; Ignore back row
C3/5836:	208A31  	JSR $318A      ; Draw party info
C3/5839:	204B58  	JSR $584B      ; Draw spell, cost
C3/583C:	4C9F31  	JMP $319F      ; Upload text maps

Window layout for spell usage menu
C3/583F:	9D581318	; 21x26 at $589D (Party)
C3/5843:	8B580702	; 09x04 at $588B (Spell)
C3/5847:	8B590703	; 09x05 at $598B (MP cost)

Draw spell name and cost message for spell usage menu
C3/584B:	A920    	LDA #$20       ; Palette 0
C3/584D:	8529    	STA $29        ; Color: User's
C3/584F:	A08958  	LDY #$5889     ; Text pointer
C3/5852:	20F902  	JSR $02F9      ; Draw "MP"
C3/5855:	A08E58  	LDY #$588E     ; Text pointer
C3/5858:	20F902  	JSR $02F9      ; Draw "Needed"
C3/585B:	7B      	TDC            ; ...
C3/585C:	A54B    	LDA $4B        ; Cursor slot
C3/585E:	85E5    	STA $E5        ; Set spell slot
C3/5860:	20B54F  	JSR $4FB5      ; Define source
C3/5863:	C220    	REP #$20       ; 16-bit A
C3/5865:	A90D79  	LDA #$790D     ; Tilemap ptr
C3/5868:	8F899E7E	STA $7E9E89    ; Set position
C3/586C:	E220    	SEP #$20       ; 8-bit A
C3/586E:	20EC50  	JSR $50EC      ; Spell
C3/5871:	206784  	JSR $8467      ; Load spell name
C3/5874:	20D97F  	JSR $7FD9      ; Draw spell name
C3/5877:	20EC50  	JSR $50EC      ; Spell
C3/587A:	200D51  	JSR $510D      ; Define MP cost
C3/587D:	20E004  	JSR $04E0      ; Turn into text
C3/5880:	A20F7A  	LDX #$7A0F     ; Text position
C3/5883:	20B604  	JSR $04B6      ; Draw 2 digits
C3/5886:	4CD97F  	JMP $7FD9      ; Redraw name...

Positioned text, "MP Needed"
C3/5889:	157A 8C8F00                    ; MP
C3/588E:	4D7A 8D9E9E9D9E9D00            ; Needed

Initialize esper data menu
C3/5897:	A44F    	LDY $4F        ; Cursor position
C3/5899:	848E    	STY $8E        ; Set return loc
C3/589B:	A54A    	LDA $4A        ; Scroll position
C3/589D:	8590    	STA $90        ; Set return loc
C3/589F:	20545B  	JSR $5B54      ; Load esper info
C3/58A2:	209F59  	JSR $599F      ; Draw esper info
C3/58A5:	20110F  	JSR $0F11      ; Queue its upload
C3/58A8:	206813  	JSR $1368      ; Upload it now
C3/58AB:	20FD0E  	JSR $0EFD      ; Requeue esper list
C3/58AE:	C220    	REP #$20       ; 16-bit A
C3/58B0:	A90001  	LDA #$0100     ; BG1 H-Shift: 256
C3/58B3:	8F109A7E	STA $7E9A10    ; Hide esper list
C3/58B7:	E220    	SEP #$20       ; 8-bit A
C3/58B9:	A549    	LDA $49        ; Top BG1 write row
C3/58BB:	855F    	STA $5F        ; Save for return
C3/58BD:	A907    	LDA #$07       ; BG1 VRAM row: 7
C3/58BF:	8549    	STA $49        ; Save for V-Shift
C3/58C1:	202D4E  	JSR $4E2D      ; Load V-shift data
C3/58C4:	A9C0    	LDA #$C0       ; Scrollbar: Off
C3/58C6:	1446    	TRB $46        ; Set anim index
C3/58C8:	207D59  	JSR $597D      ; Load navig data
C3/58CB:	4C8659  	JMP $5986      ; Relocate cursor

4D: Sustain esper data menu
C3/58CE:	208359  	JSR $5983      ; Handle D-Pad
C3/58D1:	20935B  	JSR $5B93      ; Load description
C3/58D4:	A508    	LDA $08        ; No-autofire keys
C3/58D6:	8980    	BIT #$80       ; Pushing A?
C3/58D8:	F030    	BEQ $590A      ; Branch if not
C3/58DA:	7B      	TDC            ; Clear A
C3/58DB:	A54B    	LDA $4B        ; On esper name?
C3/58DD:	D02B    	BNE $590A      ; Branch if not
C3/58DF:	A599    	LDA $99        ; Viewed esper
C3/58E1:	207455  	JSR $5574      ; Choose palette
C3/58E4:	85E0    	STA $E0        ; Memorize esper
C3/58E6:	A529    	LDA $29        ; Esper palette
C3/58E8:	C928    	CMP #$28       ; Grayed out?
C3/58EA:	D016    	BNE $5902      ; Equip if not
C3/58EC:	20C00E  	JSR $0EC0      ; Play buzzer
C3/58EF:	A910    	LDA #$10       ; Reset/Stop desc
C3/58F1:	0445    	TSB $45        ; Set menu flag
C3/58F3:	209A55  	JSR $559A      ; Draw who has it
C3/58F6:	A02000  	LDY #$0020     ; Frames: 32
C3/58F9:	8420    	STY $20        ; Set exit delay
C3/58FB:	A934    	LDA #$34       ; C3/293A
C3/58FD:	8526    	STA $26        ; Next: Late exit
C3/58FF:	4C110F  	JMP $0F11      ; Queue text upload

Fork: Equip esper
C3/5902:	20B20E  	JSR $0EB2      ; Sound: Click
C3/5905:	202929  	JSR $2929      ; Equip/draw esper
C3/5908:	8009    	BRA $5913      ; Exit submenu

Fork: Handle B
C3/590A:	A509    	LDA $09        ; No-autofire keys
C3/590C:	8980    	BIT #$80       ; Pushing B?
C3/590E:	F06C    	BEQ $597C      ; Exit if not
C3/5910:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/5913:	A910    	LDA #$10       ; Reset/Stop desc
C3/5915:	0445    	TSB $45        ; Set menu flag
C3/5917:	A55F    	LDA $5F        ; Top BG1 write row
C3/5919:	8549    	STA $49        ; Restore it
C3/591B:	206C54  	JSR $546C      ; Draw esper list
C3/591E:	201F09  	JSR $091F      ; Create scrollbar
C3/5921:	C220    	REP #$20       ; 16-bit A
C3/5923:	A90010  	LDA #$1000     ; V-Speed: 16 px
C3/5926:	9F4A357E	STA $7E354A,X  ; Set scrollbar's
C3/592A:	A96000  	LDA #$0060     ; Y: 96
C3/592D:	9FCA347E	STA $7E34CA,X  ; Set scrollbar's
C3/5931:	E220    	SEP #$20       ; 8-bit A
C3/5933:	20184C  	JSR $4C18      ; Load navig data
C3/5936:	A58E    	LDA $8E        ; Old cursor column
C3/5938:	854D    	STA $4D        ; Set onscreen col
C3/593A:	A48E    	LDY $8E        ; Old cursor loc
C3/593C:	844F    	STY $4F        ; Set as current
C3/593E:	A590    	LDA $90        ; Old scroll pos
C3/5940:	854A    	STA $4A        ; Set as current
C3/5942:	A54A    	LDA $4A        ; ...
C3/5944:	85E0    	STA $E0        ; Memorize it...
C3/5946:	A550    	LDA $50        ; List row
C3/5948:	38      	SEC            ; Prepare SBC
C3/5949:	E5E0    	SBC $E0        ; Deduct scroll pos
C3/594B:	854E    	STA $4E        ; Set cursor row
C3/594D:	20214C  	JSR $4C21      ; Relocate cursor
C3/5950:	A906    	LDA #$06       ; Top row: Golem's
C3/5952:	855C    	STA $5C        ; Set scroll limit
C3/5954:	A908    	LDA #$08       ; Onscreen rows: 8
C3/5956:	855A    	STA $5A        ; Set rows per page
C3/5958:	A902    	LDA #$02       ; Onscreen cols: 2
C3/595A:	855B    	STA $5B        ; Set cols per page
C3/595C:	20FD0E  	JSR $0EFD      ; Queue list upload
C3/595F:	206813  	JSR $1368      ; Refresh esper list
C3/5962:	C220    	REP #$20       ; 16-bit A
C3/5964:	7B      	TDC            ; BG1 H-Shift: 0
C3/5965:	8F109A7E	STA $7E9A10    ; Unhide esper list
C3/5969:	E220    	SEP #$20       ; 8-bit A
C3/596B:	A00001  	LDY #$0100     ; X: 256
C3/596E:	8439    	STY $39        ; Set BG2 X-Pos
C3/5970:	843D    	STY $3D        ; Set BG3 X-Pos
C3/5972:	202D4E  	JSR $4E2D      ; Load V-shift data
C3/5975:	20110F  	JSR $0F11      ; Queue stats upload
C3/5978:	A91E    	LDA #$1E       ; C3/28D3
C3/597A:	8526    	STA $26        ; Next: Esper choice
C3/597C:	60      	RTS

Load navigation data for esper data menu
C3/597D:	A08C59  	LDY #$598C     ; C3/598C
C3/5980:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for esper data menu
C3/5983:	202D07  	JSR $072D      ; Handle D-Pad
C3/5986:	A09159  	LDY #$5991     ; C3/5991
C3/5989:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for esper data menu
C3/598C:	80      	; Wraps vertically
C3/598D:	00      	; Initial column
C3/598E:	00      	; Initial row
C3/598F:	01      	; 1 column
C3/5990:	07      	; 7 rows

Cursor positions for esper data menu
C3/5991:	1070    	; Esper
C3/5993:	187C    	; Spell A
C3/5995:	1888    	; Spell B
C3/5997:	1894    	; Spell C
C3/5999:	18A0    	; Spell D
C3/599B:	18AC    	; Spell E
C3/599D:	18B8    	; Bonus

Draw selected esper's info
C3/599F:	A920    	LDA #$20       ; Palette 0
C3/59A1:	8529    	STA $29        ; Color: User's
C3/59A3:	A0EA5C  	LDY #$5CEA     ; Text pointer
C3/59A6:	20F902  	JSR $02F9      ; Do "Learn.Rate"
C3/59A9:	A0E25C  	LDY #$5CE2     ; Text pointer
C3/59AC:	20F902  	JSR $02F9      ; Draw "Skill"
C3/59AF:	A599    	LDA $99        ; Viewed esper
C3/59B1:	207455  	JSR $5574      ; Choose palette
C3/59B4:	A01144  	LDY #$4411     ; Tilemap ptr
C3/59B7:	201935  	JSR $3519      ; Set pos, WRAM
C3/59BA:	7B      	TDC            ; ...
C3/59BB:	A599    	LDA $99        ; Viewed esper
C3/59BD:	0A      	ASL A          ; x2
C3/59BE:	0A      	ASL A          ; x4
C3/59BF:	0A      	ASL A          ; x8
C3/59C0:	AA      	TAX            ; Index it
C3/59C1:	A00800  	LDY #$0008     ; Letters: 8
C3/59C4:	BFE1F6E6	LDA $E6F6E1,X  ; Esper name char
C3/59C8:	8D8021  	STA $2180      ; Add to string
C3/59CB:	E8      	INX            ; Point to next
C3/59CC:	88      	DEY            ; One less left
C3/59CD:	D0F5    	BNE $59C4      ; Loop till last
C3/59CF:	9C8021  	STZ $2180      ; End string
C3/59D2:	20D97F  	JSR $7FD9      ; Draw esper name

Fork: Draw spell data
C3/59D5:	7B      	TDC            ; Clear A
C3/59D6:	A54B    	LDA $4B        ; Selected slot
C3/59D8:	AA      	TAX            ; Index it
C3/59D9:	BF899D7E	LDA $7E9D89,X  ; Esper in slot
C3/59DD:	8D0242  	STA $4202      ; Set multiplicand
C3/59E0:	A90B    	LDA #$0B       ; Esper data size
C3/59E2:	8D0342  	STA $4203      ; Set multiplier
C3/59E5:	A920    	LDA #$20       ; Palette 0
C3/59E7:	8529    	STA $29        ; Color: User's
C3/59E9:	A01100  	LDY #$0011     ; Y: 17
C3/59EC:	84F5    	STY $F5        ; Memorize it
C3/59EE:	C220    	REP #$20       ; 16-bit A
C3/59F0:	AD1642  	LDA $4216      ; Product
C3/59F3:	AA      	TAX            ; Index it
C3/59F4:	E220    	SEP #$20       ; 8-bit A
C3/59F6:	BF006ED8	LDA $D86E00,X  ; Learning rate
C3/59FA:	85E0    	STA $E0        ; Memorize it
C3/59FC:	E8      	INX            ; Index +1
C3/59FD:	BF006ED8	LDA $D86E00,X  ; Spell
C3/5A01:	85E1    	STA $E1        ; Memorize it
C3/5A03:	E8      	INX            ; Index +1
C3/5A04:	DA      	PHX            ; Save index
C3/5A05:	A20500  	LDX #$0005     ; X: 5
C3/5A08:	A4F5    	LDY $F5        ; Y position
C3/5A0A:	A5E1    	LDA $E1        ; Spell
C3/5A0C:	48      	PHA            ; Preserve it
C3/5A0D:	20E15A  	JSR $5AE1      ; Draw spell, rate
C3/5A10:	A21800  	LDX #$0018     ; X: 24
C3/5A13:	A4F5    	LDY $F5        ; Y position
C3/5A15:	68      	PLA            ; Spell
C3/5A16:	85E1    	STA $E1        ; Restore it
C3/5A18:	20845A  	JSR $5A84      ; Draw percentage
C3/5A1B:	FA      	PLX            ; Spell data index
C3/5A1C:	C220    	REP #$20       ; 16-bit A
C3/5A1E:	E6F5    	INC $F5        ; Y position +1
C3/5A20:	E6F5    	INC $F5        ; Y position +1
C3/5A22:	A5F5    	LDA $F5        ; Y position
C3/5A24:	C91B00  	CMP #$001B     ; Done 5 spells?
C3/5A27:	D0CB    	BNE $59F4      ; Loop if not

Fork: Draw esper bonus message
C3/5A29:	E220    	SEP #$20       ; 8-bit A
C3/5A2B:	BF006ED8	LDA $D86E00,X  ; Esper bonus
C3/5A2F:	C9FF    	CMP #$FF       ; None?
C3/5A31:	F034    	BEQ $5A67      ; Blank if so
C3/5A33:	8D0242  	STA $4202      ; Set multiplicand
C3/5A36:	A909    	LDA #$09       ; Text length
C3/5A38:	8D0342  	STA $4203      ; Set multiplier
C3/5A3B:	A01347  	LDY #$4713     ; Tilemap ptr
C3/5A3E:	201935  	JSR $3519      ; Set pos, WRAM
C3/5A41:	A600    	LDX $00        ; Char index: 0
C3/5A43:	BFF75CC3	LDA $C35CF7,X  ; "At..." char
C3/5A47:	8D8021  	STA $2180      ; Add to string
C3/5A4A:	E8      	INX            ; Point to next
C3/5A4B:	E00E00  	CPX #$000E     ; Done all 14?
C3/5A4E:	D0F3    	BNE $5A43      ; Loop if not
C3/5A50:	AE1642  	LDX $4216      ; Index product
C3/5A53:	A00900  	LDY #$0009     ; Letters: 9
C3/5A56:	BFAEFECF	LDA $CFFEAE,X  ; Bonus char
C3/5A5A:	8D8021  	STA $2180      ; Add to string
C3/5A5D:	E8      	INX            ; Point to next
C3/5A5E:	88      	DEY            ; One less left
C3/5A5F:	D0F5    	BNE $5A56      ; Loop till last
C3/5A61:	9C8021  	STZ $2180      ; End string
C3/5A64:	4CD97F  	JMP $7FD9      ; Draw string

Fork: Blank esper bonus message
C3/5A67:	A01347  	LDY #$4713     ; Tilemap ptr
C3/5A6A:	201935  	JSR $3519      ; Set pos, WRAM
C3/5A6D:	A01700  	LDY #$0017     ; Letters: 23
C3/5A70:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/5A73:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5A76:	A9FF    	LDA #$FF       ; Space char
C3/5A78:	8D8021  	STA $2180      ; Add to string
C3/5A7B:	88      	DEY            ; One less left
C3/5A7C:	D0FA    	BNE $5A78      ; Loop till last
C3/5A7E:	9C8021  	STZ $2180      ; End string
C3/5A81:	4CD97F  	JMP $7FD9      ; Draw 23 spaces

Draw spell's mastery percentage for esper data menu
C3/5A84:	203D5B  	JSR $5B3D      ; Compute map ptr
C3/5A87:	C220    	REP #$20       ; 16-bit A
C3/5A89:	8A      	TXA            ; ...
C3/5A8A:	8F899E7E	STA $7E9E89    ; Set position
C3/5A8E:	E220    	SEP #$20       ; 8-bit A
C3/5A90:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/5A93:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5A96:	A5E1    	LDA $E1        ; Spell
C3/5A98:	C9FF    	CMP #$FF       ; None?
C3/5A9A:	F035    	BEQ $5AD1      ; Blank if so
C3/5A9C:	20A250  	JSR $50A2      ; Spell mastery
C3/5A9F:	C9FF    	CMP #$FF       ; Fully learned?
C3/5AA1:	F01F    	BEQ $5AC2      ; Branch if so
C3/5AA3:	48      	PHA            ; Save mastery
C3/5AA4:	A9FF    	LDA #$FF       ; Space char
C3/5AA6:	8D8021  	STA $2180      ; Add to string
C3/5AA9:	68      	PLA            ; Spell mastery
C3/5AAA:	20E004  	JSR $04E0      ; Turn into text
C3/5AAD:	A5F8    	LDA $F8        ; Tens digit
C3/5AAF:	8D8021  	STA $2180      ; Add to string
C3/5AB2:	A5F9    	LDA $F9        ; Ones digit
C3/5AB4:	8D8021  	STA $2180      ; Add to string
C3/5AB7:	A9CD    	LDA #$CD       ; Char: "%"
C3/5AB9:	8D8021  	STA $2180      ; Add to string
C3/5ABC:	9C8021  	STZ $2180      ; End string
C3/5ABF:	4CD97F  	JMP $7FD9      ; Draw string

Fork: Draw "100%"
C3/5AC2:	A9B5    	LDA #$B5       ; Char: "1"
C3/5AC4:	8D8021  	STA $2180      ; Add to string
C3/5AC7:	A9B4    	LDA #$B4       ; Char: "0"
C3/5AC9:	8D8021  	STA $2180      ; Add to string
C3/5ACC:	8D8021  	STA $2180      ; Add to string
C3/5ACF:	80E6    	BRA $5AB7      ; Add "%"; draw

Fork: Blank percentage
C3/5AD1:	A9FF    	LDA #$FF       ; Space char
C3/5AD3:	8D8021  	STA $2180      ; Add to string
C3/5AD6:	8D8021  	STA $2180      ; Add to string
C3/5AD9:	8D8021  	STA $2180      ; Add to string
C3/5ADC:	8D8021  	STA $2180      ; Add to string
C3/5ADF:	80DB    	BRA $5ABC      ; Draw 4 spaces

Draw spell's name and learning rate
C3/5AE1:	203D5B  	JSR $5B3D      ; Compute map ptr
C3/5AE4:	C220    	REP #$20       ; 16-bit A
C3/5AE6:	8A      	TXA            ; ...
C3/5AE7:	8F899E7E	STA $7E9E89    ; Set position
C3/5AEB:	E220    	SEP #$20       ; 8-bit A
C3/5AED:	20B54F  	JSR $4FB5      ; Define source
C3/5AF0:	A5E1    	LDA $E1        ; Spell
C3/5AF2:	C9FF    	CMP #$FF       ; None?
C3/5AF4:	F030    	BEQ $5B26      ; Blank if so
C3/5AF6:	206784  	JSR $8467      ; Load name
C3/5AF9:	A2929E  	LDX #$9E92     ; 7E/9E92
C3/5AFC:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5AFF:	A9C1    	LDA #$C1       ; Char: ":"
C3/5B01:	8D8021  	STA $2180      ; Add to string
C3/5B04:	A9FF    	LDA #$FF       ; Space char
C3/5B06:	8D8021  	STA $2180      ; Add to string
C3/5B09:	8D8021  	STA $2180      ; Add to string
C3/5B0C:	A9D7    	LDA #$D7       ; Char: ""
C3/5B0E:	8D8021  	STA $2180      ; Add to string
C3/5B11:	A5E0    	LDA $E0        ; Learning rate
C3/5B13:	20E004  	JSR $04E0      ; Turn into text
C3/5B16:	A5F8    	LDA $F8        ; Tens digit
C3/5B18:	8D8021  	STA $2180      ; Add to string
C3/5B1B:	A5F9    	LDA $F9        ; Ones digit
C3/5B1D:	8D8021  	STA $2180      ; Add to string
C3/5B20:	9C8021  	STZ $2180      ; End string
C3/5B23:	4CD97F  	JMP $7FD9      ; Draw string

Fork: No spell
C3/5B26:	A00F00  	LDY #$000F     ; Spaces: 15
C3/5B29:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/5B2C:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5B2F:	A9FF    	LDA #$FF       ; Space char
C3/5B31:	8D8021  	STA $2180      ; Add to string
C3/5B34:	88      	DEY            ; One less left
C3/5B35:	D0FA    	BNE $5B31      ; Loop till last
C3/5B37:	9C8021  	STZ $2180      ; End string
C3/5B3A:	4CD97F  	JMP $7FD9      ; Draw 15 spaces

Compute position into BG1 tilemap B
C3/5B3D:	C220    	REP #$20       ; 16-bit A
C3/5B3F:	98      	TYA            ; Y position
C3/5B40:	0A      	ASL A          ; x2
C3/5B41:	0A      	ASL A          ; x4
C3/5B42:	0A      	ASL A          ; x8
C3/5B43:	0A      	ASL A          ; x16
C3/5B44:	0A      	ASL A          ; x32
C3/5B45:	0A      	ASL A          ; x64
C3/5B46:	85E7    	STA $E7        ; Memorize it
C3/5B48:	8A      	TXA            ; X position
C3/5B49:	0A      	ASL A          ; Double it
C3/5B4A:	18      	CLC            ; ...
C3/5B4B:	65E7    	ADC $E7        ; Add Y x64
C3/5B4D:	694940  	ADC #$4049     ; Add base adr
C3/5B50:	AA      	TAX            ; Put in X...
C3/5B51:	E220    	SEP #$20       ; 8-bit A...
C3/5B53:	60      	RTS

Load esper's info for display
C3/5B54:	7B      	TDC            ; Clear A...
C3/5B55:	A599    	LDA $99        ; Chosen esper
C3/5B57:	8F8DAB7E	STA $7EAB8D    ; Add to list
C3/5B5B:	A54B    	LDA $4B        ; Chosen slot...
C3/5B5D:	AA      	TAX            ; Index it...
C3/5B5E:	BF899D7E	LDA $7E9D89,X  ; Chosen esper...
C3/5B62:	8D0242  	STA $4202      ; Set multiplicand
C3/5B65:	A90B    	LDA #$0B       ; Esper data size
C3/5B67:	8D0342  	STA $4203      ; Set multiplier
C3/5B6A:	8B      	PHB            ; Save DB
C3/5B6B:	A97E    	LDA #$7E       ; Bank: 7E
C3/5B6D:	48      	PHA            ; Put on stack
C3/5B6E:	AB      	PLB            ; Set DB to 7E
C3/5B6F:	A00100  	LDY #$0001     ; Spell slot: 1
C3/5B72:	C220    	REP #$20       ; 16-bit A
C3/5B74:	AF164200	LDA $004216    ; Product
C3/5B78:	AA      	TAX            ; Index it
C3/5B79:	E220    	SEP #$20       ; 8-bit A
C3/5B7B:	E8      	INX            ; Skip Learn.Rate
C3/5B7C:	BF006ED8	LDA $D86E00,X  ; Spell taught
C3/5B80:	998DAB  	STA $AB8D,Y    ; Add to list
C3/5B83:	E8      	INX            ; ROM index +1
C3/5B84:	C8      	INY            ; RAM index +1
C3/5B85:	C00600  	CPY #$0006     ; Done 5 spells?
C3/5B88:	D0F1    	BNE $5B7B      ; Loop if not
C3/5B8A:	BF006ED8	LDA $D86E00,X  ; Level up bonus
C3/5B8E:	8D93AB  	STA $AB93      ; Add to list
C3/5B91:	AB      	PLB            ; Restore DB
C3/5B92:	60      	RTS

Load description for esper data menu
C3/5B93:	A2C99E  	LDX #$9EC9     ; 7E/9EC9
C3/5B96:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5B99:	7B      	TDC            ; Clear A
C3/5B9A:	A54B    	LDA $4B        ; Cursor row
C3/5B9C:	AA      	TAX            ; Index it
C3/5B9D:	BF8DAB7E	LDA $7EAB8D,X  ; Slot content
C3/5BA1:	C9FF    	CMP #$FF       ; Empty slot?
C3/5BA3:	F02C    	BEQ $5BD1      ; Blank if so
C3/5BA5:	48      	PHA            ; Memorize it
C3/5BA6:	20DB5B  	JSR $5BDB      ; Load pointers
C3/5BA9:	68      	PLA            ; Slot content
C3/5BAA:	C220    	REP #$20       ; 16-bit A
C3/5BAC:	0A      	ASL A          ; Double it
C3/5BAD:	A8      	TAY            ; Index it
C3/5BAE:	B7E7    	LDA [$E7],Y    ; Relative ptr
C3/5BB0:	A8      	TAY            ; Index it
C3/5BB1:	E220    	SEP #$20       ; 8-bit A
C3/5BB3:	B7EB    	LDA [$EB],Y    ; Text character
C3/5BB5:	F006    	BEQ $5BBD      ; Branch if 00h
C3/5BB7:	8D8021  	STA $2180      ; Add to string
C3/5BBA:	C8      	INY            ; Index +1
C3/5BBB:	80F6    	BRA $5BB3      ; Do next char

Fork: Check if terminator (SFC)
C3/5BBD:	88      	DEY            ; Index -1
C3/5BBE:	B7EB    	LDA [$EB],Y    ; Previous char
C3/5BC0:	C8      	INY            ; Index +1
C3/5BC1:	C91C    	CMP #$1C       ; Command 1C?
C3/5BC3:	F010    	BEQ $5BD5      ; Branch if so
C3/5BC5:	C91D    	CMP #$1D       ; Command 1D?
C3/5BC7:	F00C    	BEQ $5BD5      ; Branch if so
C3/5BC9:	C91E    	CMP #$1E       ; Command 1E?
C3/5BCB:	F008    	BEQ $5BD5      ; Branch if so
C3/5BCD:	C91F    	CMP #$1F       ; Command 1F?
C3/5BCF:	F004    	BEQ $5BD5      ; Branch if so
C3/5BD1:	9C8021  	STZ $2180      ; End string
C3/5BD4:	60      	RTS

Fork: Resume past control code (SFC)
C3/5BD5:	9C8021  	STZ $2180      ; Add 00h to msg
C3/5BD8:	C8      	INY            ; Index +1
C3/5BD9:	80D8    	BRA $5BB3      ; Do next char

Load description pointers for esper data menu
C3/5BDB:	A54B    	LDA $4B        ; On esper name?
C3/5BDD:	F02A    	BEQ $5C09      ; Branch if so
C3/5BDF:	C906    	CMP #$06       ; On bonus?
C3/5BE1:	F013    	BEQ $5BF6      ; Branch if so

Fork: Magic effect
C3/5BE3:	A280CF  	LDX #$CF80     ; D8/CF80
C3/5BE6:	86E7    	STX $E7        ; Set ptr loc LBs
C3/5BE8:	A2A0C9  	LDX #$C9A0     ; D8/C9A0
C3/5BEB:	86EB    	STX $EB        ; Set text loc LBs
C3/5BED:	A9D8    	LDA #$D8       ; Bank: D8
C3/5BEF:	85E9    	STA $E9        ; Set ptr loc HB
C3/5BF1:	A9D8    	LDA #$D8       ; ...
C3/5BF3:	85ED    	STA $ED        ; Set text loc HB
C3/5BF5:	60      	RTS

Fork: Level up bonus
C3/5BF6:	A2D0FF  	LDX #$FFD0     ; ED/FFD0
C3/5BF9:	86E7    	STX $E7        ; Set ptr loc LBs
C3/5BFB:	A200FE  	LDX #$FE00     ; ED/FE00
C3/5BFE:	86EB    	STX $EB        ; Set text loc LBs
C3/5C00:	A9ED    	LDA #$ED       ; Bank: ED
C3/5C02:	85E9    	STA $E9        ; Set ptr loc HB
C3/5C04:	A9ED    	LDA #$ED       ; ...
C3/5C06:	85ED    	STA $ED        ; Set text loc HB
C3/5C08:	60      	RTS

Fork: Esper effect
C3/5C09:	A240FE  	LDX #$FE40     ; CF/FE40
C3/5C0C:	86E7    	STX $E7        ; Set ptr loc LBs
C3/5C0E:	A24039  	LDX #$3940     ; CF/3940
C3/5C11:	86EB    	STX $EB        ; Set text loc LBs
C3/5C13:	A9CF    	LDA #$CF       ; Bank: CF
C3/5C15:	85E9    	STA $E9        ; Set ptr loc HB
C3/5C17:	A9CF    	LDA #$CF       ; ...
C3/5C19:	85ED    	STA $ED        ; Set text loc HB
C3/5C1B:	60      	RTS

Tile attributes for Blitz inputs
C3/5C1C:	0000    	; Terminator
C3/5C1E:	0000    	; Bogus; for A
C3/5C20:	0000    	; Bogus; for B
C3/5C22:	9720    	; X
C3/5C24:	9820    	; Y
C3/5C26:	8B20    	; L
C3/5C28:	9120    	; R
C3/5C2A:	D620    	; Down-left
C3/5C2C:	D4A0    	; Down
C3/5C2E:	D660    	; Down-right
C3/5C30:	D520    	; Right
C3/5C32:	D6C0    	; Up-right
C3/5C34:	D420    	; Up
C3/5C36:	D6A0    	; Up-left
C3/5C38:	D560    	; Left

Text pointers for Skills menu (unused)
C3/5C3A:	485C    	               ; Espers
C3/5C3C:	515C    	               ; Magic
C3/5C3E:	595C    	               ; SwdTech
C3/5C40:	635C    	               ; Blitz
C3/5C42:	6B5C    	               ; Lore
C3/5C44:	725C    	               ; Rage
C3/5C46:	795C    	               ; Dance

Positioned text for Skills menu
C3/5C48:	0D79 84ACA99EABAC00            ; Espers
C3/5C51:	8D79 8C9AA0A29C00              ; Magic
C3/5C59:	8D7A 92B09D939E9CA100          ; SwdTech
C3/5C63:	0D7B 81A5A2ADB300              ; Blitz
C3/5C6B:	8D7B 8BA8AB9E00                ; Lore
C3/5C72:	0D7C 919AA09E00                ; Rage
C3/5C79:	8D7C 839AA79C9E00              ; Dance

Text pointers for Skills menu
C3/5C81:	C25C    	               ; LV
C3/5C83:	C75C    	               ; HP
C3/5C85:	CC5C    	               ; MP

Positioned text for Skills submenus
C3/5C87:	B781 8C8FC7FFFFFFFF00          ; "MP    "
C3/5C91:	B781 8BA8AB9E00                ; Lore
C3/5C98:	B781 919AA09E00                ; Rage
C3/5C9F:	B781 839AA79C9E00              ; Dance
C3/5CA7:	B781 84ACA99EABAC00            ; Espers
C3/5CB0:	B781 81A5A2ADB300              ; Blitz
C3/5CB8:	B781 92B09D939E9CA100          ; SwdTech
C3/5CC2:	2D42 8B9500                    ; LV
C3/5CC7:	AD42 878F00                    ; HP
C3/5CCC:	2D43 8C8F00                    ; MP
C3/5CD1:	BB42 C000                      ; /
C3/5CD5:	3B43 C000                      ; /
C3/5CD9:	FFA19AACFFA2ADBE00             ; " has it!"
C3/5CE2:	3944 92A4A2A5A500              ; Skill
C3/5CEA:	2344 8B9E9AABA7C5919AAD9E00    ; Learn.Rate
C3/5CF7:	80ADFFA59EAF9EA5FFAEA9C5C5C5   ; At level up...

Draw and upload Status menu, create portrait
C3/5D05:	20175D  	JSR $5D17      ; Draw main windows
C3/5D08:	20C15D  	JSR $5DC1      ; Draw Gogo's panel
C3/5D0B:	203C5D  	JSR $5D3C      ; Draw blue text
C3/5D0E:	208D5F  	JSR $5F8D      ; Draw actor info
C3/5D11:	20775D  	JSR $5D77      ; Upload tilemaps
C3/5D14:	4CAC61  	JMP $61AC      ; Create portrait

Draw windows for non-shifted Status menu
C3/5D17:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/5D1A:	20236A  	JSR $6A23      ; Clear BG1 map D
C3/5D1D:	203C6A  	JSR $6A3C      ; Clear BG3 map A
C3/5D20:	20416A  	JSR $6A41      ; Clear BG3 map B
C3/5D23:	20466A  	JSR $6A46      ; Clear BG3 map C
C3/5D26:	204B6A  	JSR $6A4B      ; Clear BG3 map D
C3/5D29:	A0815F  	LDY #$5F81     ; C3/5F81
C3/5D2C:	204103  	JSR $0341      ; Draw main window
C3/5D2F:	A0795F  	LDY #$5F79     ; C3/5F79
C3/5D32:	204103  	JSR $0341      ; Draw title window
C3/5D35:	A07D5F  	LDY #$5F7D     ; C3/5F7D
C3/5D38:	204103  	JSR $0341      ; Draw cmd window
C3/5D3B:	60      	RTS

Draw blue text and non-blue symbols in Status menu
C3/5D3C:	20415D  	JSR $5D41      ; LV, HP, MP, %, /
C3/5D3F:	801B    	BRA $5D5C      ; Rest of blue text

Draw LV, HP, MP, and non-blue symbols in Status menu
C3/5D41:	A920    	LDA #$20       ; Palette 0
C3/5D43:	8529    	STA $29        ; Color: User's
C3/5D45:	A25B64  	LDX #$645B     ; Text ptrs loc
C3/5D48:	A00800  	LDY #$0008     ; Strings: 4
C3/5D4B:	20BA69  	JSR $69BA      ; Draw 2x / and %
C3/5D4E:	A924    	LDA #$24       ; Palette 1
C3/5D50:	8529    	STA $29        ; Color: Blue
C3/5D52:	A25564  	LDX #$6455     ; Text ptrs loc
C3/5D55:	A00600  	LDY #$0006     ; Strings: 3
C3/5D58:	20BA69  	JSR $69BA      ; Draw "LV/HP/MP"
C3/5D5B:	60      	RTS

Draw all blue text in Status menu except LV, HP, and MP
C3/5D5C:	A92C    	LDA #$2C       ; Palette 3
C3/5D5E:	8529    	STA $29        ; Color: Blue
C3/5D60:	A23764  	LDX #$6437     ; Text ptrs loc
C3/5D63:	A01E00  	LDY #$001E     ; Strings: 15
C3/5D66:	20BA69  	JSR $69BA      ; Draw Vigor, etc.
C3/5D69:	A92C    	LDA #$2C       ; ...
C3/5D6B:	8529    	STA $29        ; ...
C3/5D6D:	A26364  	LDX #$6463     ; Text ptrs loc
C3/5D70:	A00C00  	LDY #$000C     ; Strings: 6
C3/5D73:	20BA69  	JSR $69BA      ; Draw Speed, etc.
C3/5D76:	60      	RTS

Upload tilemaps for Status menu
C3/5D77:	20520E  	JSR $0E52      ; Upload BG2 A+B
C3/5D7A:	20280E  	JSR $0E28      ; Upload BG1 A+B
C3/5D7D:	206E0E  	JSR $0E6E      ; Upload BG3 A+B
C3/5D80:	4C7C0E  	JMP $0E7C      ; Upload BG3 C+D

Handle member switching in Status menu
C3/5D83:	20415D  	JSR $5D41      ; Draw "MP" + "/"
C3/5D86:	208D5F  	JSR $5F8D      ; Draw actor info
C3/5D89:	20A261  	JSR $61A2      ; Create portrait
C3/5D8C:	A00000  	LDY #$0000     ; $0000 = BG1a
C3/5D8F:	8414    	STY $14        ; Set VRAM ptr A
C3/5D91:	A04938  	LDY #$3849     ; 7E/3849
C3/5D94:	8416    	STY $16        ; Set src-a LBs
C3/5D96:	A00008  	LDY #$0800     ; Bytes: 2048
C3/5D99:	8412    	STY $12        ; Set src-a size
C3/5D9B:	A00040  	LDY #$4000     ; $4000 = BG3a
C3/5D9E:	841B    	STY $1B        ; Set VRAM ptr B
C3/5DA0:	A04978  	LDY #$7849     ; 7E/7849
C3/5DA3:	841D    	STY $1D        ; Set src-b LBs
C3/5DA5:	A00008  	LDY #$0800     ; Bytes: 2048
C3/5DA8:	8419    	STY $19        ; Set src-b size
C3/5DAA:	20B011  	JSR $11B0      ; Swap portraits
C3/5DAD:	206813  	JSR $1368      ; Trigger NMI
C3/5DB0:	A400    	LDY $00        ; Null value
C3/5DB2:	841B    	STY $1B        ; Dequeue BG3a
C3/5DB4:	A00048  	LDY #$4800     ; $4800 = BG3c
C3/5DB7:	8414    	STY $14        ; Set VRAM ptr
C3/5DB9:	A04988  	LDY #$8849     ; 7E/8849
C3/5DBC:	8416    	STY $16        ; Set src LBs
C3/5DBE:	4C6813  	JMP $1368      ; Upload BG3c

Draw Gogo's list of available commands, prepare portrait hiding
C3/5DC1:	A2099E  	LDX #$9E09     ; 7E/9E09
C3/5DC4:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5DC7:	7B      	TDC            ; Clear A

Fork: Compile everyone's commands, exclude guests and dead Shadow
C3/5DC8:	AA      	TAX            ; 1st: Terra
C3/5DC9:	DA      	PHX            ; Save char slot
C3/5DCA:	C220    	REP #$20       ; 16-bit A
C3/5DCC:	8A      	TXA            ; Actor slot
C3/5DCD:	0A      	ASL A          ; Double it
C3/5DCE:	AA      	TAX            ; Index it
C3/5DCF:	ADDC1E  	LDA $1EDC      ; Eligible actors
C3/5DD2:	3F679CC3	AND $C39C67,X  ; Has our actor?
C3/5DD6:	F023    	BEQ $5DFB      ; Skip if not
C3/5DD8:	C220    	REP #$20       ; ...
C3/5DDA:	BF6969C3	LDA $C36969,X  ; Actor's address
C3/5DDE:	AA      	TAX            ; Index it
C3/5DDF:	E220    	SEP #$20       ; 8-bit A
C3/5DE1:	BD1600  	LDA $0016,X    ; Command 1
C3/5DE4:	8D8021  	STA $2180      ; Add to list
C3/5DE7:	BD1700  	LDA $0017,X    ; Command 2
C3/5DEA:	8D8021  	STA $2180      ; Add to list
C3/5DED:	BD1800  	LDA $0018,X    ; Command 3
C3/5DF0:	8D8021  	STA $2180      ; Add to list
C3/5DF3:	BD1900  	LDA $0019,X    ; Command 4
C3/5DF6:	8D8021  	STA $2180      ; Add to list
C3/5DF9:	8010    	BRA $5E0B      ; Do next actor
C3/5DFB:	E220    	SEP #$20       ; 8-bit A
C3/5DFD:	A9FF    	LDA #$FF       ; Command: None
C3/5DFF:	8D8021  	STA $2180      ; Set command 1
C3/5E02:	8D8021  	STA $2180      ; Set command 2
C3/5E05:	8D8021  	STA $2180      ; Set command 3
C3/5E08:	8D8021  	STA $2180      ; Set command 4
C3/5E0B:	FA      	PLX            ; Actor slot
C3/5E0C:	E8      	INX            ; Actor slot +1
C3/5E0D:	E01000  	CPX #$0010     ; Done 16 actors?
C3/5E10:	D0B7    	BNE $5DC9      ; Loop if not

Fork: Delete duplicates
C3/5E12:	7B      	TDC            ; Clear A
C3/5E13:	AA      	TAX            ; Cmd slot: 1
C3/5E14:	DA      	PHX            ; Save cmd slot
C3/5E15:	BF099E7E	LDA $7E9E09,X  ; Available cmd
C3/5E19:	DF0A9E7E	CMP $7E9E0A,X  ; Duplicate?
C3/5E1D:	D008    	BNE $5E27      ; Branch if not
C3/5E1F:	48      	PHA            ; Save command
C3/5E20:	A9FF    	LDA #$FF       ; Command: None
C3/5E22:	9F0A9E7E	STA $7E9E0A,X  ; Clear duplicate
C3/5E26:	68      	PLA            ; Battle command
C3/5E27:	E8      	INX            ; Cmd slot +1
C3/5E28:	E04000  	CPX #$0040     ; Done 16 x 4?
C3/5E2B:	D0EC    	BNE $5E19      ; Loop if not
C3/5E2D:	FA      	PLX            ; Base cmd slot
C3/5E2E:	E8      	INX            ; Cmd slot +1
C3/5E2F:	E04000  	CPX #$0040     ; Done 16 x 4?
C3/5E32:	D0E0    	BNE $5E14      ; Loop if not

Fork: Build final command list
C3/5E34:	A28A9D  	LDX #$9D8A     ; 7E/9D8A
C3/5E37:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5E3A:	A9FF    	LDA #$FF       ; Cmd: Empty
C3/5E3C:	8D8021  	STA $2180      ; Add to list
C3/5E3F:	7B      	TDC            ; Clear A
C3/5E40:	AA      	TAX            ; Cmd slot: 1
C3/5E41:	A8      	TAY            ; Cmd count: 0
C3/5E42:	7B      	TDC            ; ...
C3/5E43:	DA      	PHX            ; Save cmd slot
C3/5E44:	BF099E7E	LDA $7E9E09,X  ; Available cmd
C3/5E48:	3016    	BMI $5E60      ; Skip if none
C3/5E4A:	C912    	CMP #$12       ; Mimic?
C3/5E4C:	F012    	BEQ $5E60      ; Skip if so
C3/5E4E:	85E0    	STA $E0        ; Memorize it
C3/5E50:	0A      	ASL A          ; Double it
C3/5E51:	AA      	TAX            ; Index it
C3/5E52:	BF00FECF	LDA $CFFE00,X  ; Properties
C3/5E56:	2901    	AND #$01       ; Gogo can use?
C3/5E58:	F006    	BEQ $5E60      ; Skip if not
C3/5E5A:	A5E0    	LDA $E0        ; Command
C3/5E5C:	8D8021  	STA $2180      ; Add to list
C3/5E5F:	C8      	INY            ; Cmd count +1
C3/5E60:	FA      	PLX            ; Cmd slot
C3/5E61:	E8      	INX            ; Cmd slot +1
C3/5E62:	E04000  	CPX #$0040     ; Done 16 x 4?
C3/5E65:	D0DB    	BNE $5E42      ; Loop if not
C3/5E67:	C8      	INY            ; Cmd count +1
C3/5E68:	98      	TYA            ; Put it in A
C3/5E69:	8F899D7E	STA $7E9D89    ; Set list size

Fork: Load window layout for command list
C3/5E6D:	A28DAA  	LDX #$AA8D     ; 7E/AA8D
C3/5E70:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5E73:	7B      	TDC            ; Clear A
C3/5E74:	AA      	TAX            ; Index: 0
C3/5E75:	BF855FC3	LDA $C35F85,X  ; Window data
C3/5E79:	8D8021  	STA $2180      ; Save in WRAM
C3/5E7C:	E8      	INX            ; Index +1
C3/5E7D:	E00800  	CPX #$0008     ; End of table?
C3/5E80:	D0F3    	BNE $5E75      ; Loop if not

Fork: Draw both segments of command window
C3/5E82:	98      	TYA            ; Command count
C3/5E83:	85E2    	STA $E2        ; Memorize it
C3/5E85:	18      	CLC            ; Prepare ADC
C3/5E86:	65E2    	ADC $E2        ; x2
C3/5E88:	65E2    	ADC $E2        ; x3
C3/5E8A:	29FE    	AND #$FE       ; -1 if odd
C3/5E8C:	F002    	BEQ $5E90      ; Branch if no cmd
C3/5E8E:	1A      	INC A          ; +1
C3/5E8F:	1A      	INC A          ; +1
C3/5E90:	4A      	LSR A          ; 2
C3/5E91:	8F90AA7E	STA $7EAA90    ; Set L-Win heigth
C3/5E95:	8F94AA7E	STA $7EAA94    ; Set R-Win heigth
C3/5E99:	A08DAA  	LDY #$AA8D     ; 7E/AA8D
C3/5E9C:	A97E    	LDA #$7E       ; Bank: 7E
C3/5E9E:	85E9    	STA $E9        ; Set src HB
C3/5EA0:	204503  	JSR $0345      ; Draw left box
C3/5EA3:	A091AA  	LDY #$AA91     ; 7E/AA91
C3/5EA6:	A97E    	LDA #$7E       ; ...
C3/5EA8:	85E9    	STA $E9        ; ...
C3/5EAA:	204503  	JSR $0345      ; Draw right box

Fork: Draw command list, prepare portrait hiding
C3/5EAD:	AF899D7E	LDA $7E9D89    ; List size
C3/5EB1:	85E5    	STA $E5        ; Memorize it
C3/5EB3:	64E6    	STZ $E6        ; Clear HB
C3/5EB5:	7B      	TDC            ; Clear A
C3/5EB6:	AA      	TAX            ; Cmd slot: 1
C3/5EB7:	A0C980  	LDY #$80C9     ; Tilemap ptr
C3/5EBA:	DA      	PHX            ; Save cmd slot
C3/5EBB:	5A      	PHY            ; Save position
C3/5EBC:	BF8A9D7E	LDA $7E9D8A,X  ; Available cmd
C3/5EC0:	20D75E  	JSR $5ED7      ; Draw cmd name
C3/5EC3:	7A      	PLY            ; Text position
C3/5EC4:	C220    	REP #$20       ; 16-bit A
C3/5EC6:	98      	TYA            ; Put in A
C3/5EC7:	18      	CLC            ; Prepare ADC
C3/5EC8:	698000  	ADC #$0080     ; +2 rows down
C3/5ECB:	A8      	TAY            ; Put in Y
C3/5ECC:	E220    	SEP #$20       ; 8-bit A
C3/5ECE:	FA      	PLX            ; Cmd slot
C3/5ECF:	E8      	INX            ; Cmd slot +1
C3/5ED0:	E4E5    	CPX $E5        ; End of list?
C3/5ED2:	D0E6    	BNE $5EBA      ; Loop if not
C3/5ED4:	4C505F  	JMP $5F50      ; Set hiding spot

Draw battle command name, ignore modifiers
C3/5ED7:	48      	PHA            ; Save command
C3/5ED8:	201935  	JSR $3519      ; Set pos, WRAM
C3/5EDB:	68      	PLA            ; Battle command
C3/5EDC:	302E    	BMI $5F0C      ; Blank if none
C3/5EDE:	4CE65E  	JMP $5EE6      ; Draw cmd name

Draw battle command name, apply modifiers
C3/5EE1:	202C61  	JSR $612C      ; Apply modifiers
C3/5EE4:	3026    	BMI $5F0C      ; Blank if no cmd
C3/5EE6:	20255F  	JSR $5F25      ; Pick a palette
C3/5EE9:	85E2    	STA $E2        ; Save command
C3/5EEB:	48      	PHA            ; Memorize it
C3/5EEC:	0A      	ASL A          ; x2
C3/5EED:	0A      	ASL A          ; x4
C3/5EEE:	85E0    	STA $E0        ; Memorize it
C3/5EF0:	68      	PLA            ; Command
C3/5EF1:	0A      	ASL A          ; x2
C3/5EF2:	18      	CLC            ; ...
C3/5EF3:	65E0    	ADC $E0        ; x6
C3/5EF5:	65E2    	ADC $E2        ; x7
C3/5EF7:	AA      	TAX            ; Index it
C3/5EF8:	A00700  	LDY #$0007     ; Letters: 7
C3/5EFB:	BFA0CED8	LDA $D8CEA0,X  ; Letter
C3/5EFF:	8D8021  	STA $2180      ; Add to string
C3/5F02:	E8      	INX            ; Point to next
C3/5F03:	88      	DEY            ; One less left
C3/5F04:	D0F5    	BNE $5EFB      ; Loop till last
C3/5F06:	9C8021  	STZ $2180      ; End string
C3/5F09:	4CD97F  	JMP $7FD9      ; Draw cmd name

Fork: Blank command slot
C3/5F0C:	A9FF    	LDA #$FF       ; Space char
C3/5F0E:	8D8021  	STA $2180      ; Add to string
C3/5F11:	8D8021  	STA $2180      ; Add to string
C3/5F14:	8D8021  	STA $2180      ; Add to string
C3/5F17:	8D8021  	STA $2180      ; Add to string
C3/5F1A:	8D8021  	STA $2180      ; Add to string
C3/5F1D:	8D8021  	STA $2180      ; Add to string
C3/5F20:	8D8021  	STA $2180      ; Add to string
C3/5F23:	80E1    	BRA $5F06      ; Draw 7 spaces

Select a palette for battle command
C3/5F25:	48      	PHA            ; Save command
C3/5F26:	C90B    	CMP #$0B       ; Runic?
C3/5F28:	F010    	BEQ $5F3A      ; Branch if so
C3/5F2A:	C907    	CMP #$07       ; SwdTech?
C3/5F2C:	F016    	BEQ $5F44      ; Branch if so
C3/5F2E:	A920    	LDA #$20       ; Palette 0
C3/5F30:	8529    	STA $29        ; Color: User's
C3/5F32:	68      	PLA            ; Command
C3/5F33:	60      	RTS

Fork: Set to gray
C3/5F34:	A924    	LDA #$24       ; Palette 1
C3/5F36:	8529    	STA $29        ; Color: Gray
C3/5F38:	68      	PLA            ; Command
C3/5F39:	60      	RTS

Fork: Handle Runic
C3/5F3A:	ADDA11  	LDA $11DA      ; R-Hand can Runic?
C3/5F3D:	0DDB11  	ORA $11DB      ; Or L-Hand?
C3/5F40:	10F2    	BPL $5F34      ; Gray out if not
C3/5F42:	80EA    	BRA $5F2E      ; Use user's color

Fork: Handle SwdTech
C3/5F44:	ADDA11  	LDA $11DA      ; R-Hand flags
C3/5F47:	0DDB11  	ORA $11DB      ; Add L-Hand's
C3/5F4A:	8902    	BIT #$02       ; Can use SwdTech?
C3/5F4C:	F0E6    	BEQ $5F34      ; Gray out if not
C3/5F4E:	80DE    	BRA $5F2E      ; Use user's color

Set a section of Status menu to mask wrapping Gogo portrait
C3/5F50:	A2CA61  	LDX #$61CA     ; Tilemap ptr
C3/5F53:	86E7    	STX $E7        ; Set dst LBs
C3/5F55:	A97E    	LDA #$7E       ; Bank: 7E
C3/5F57:	85E9    	STA $E9        ; Set dst HB
C3/5F59:	A20600  	LDX #$0006     ; Rows left: 6
C3/5F5C:	7B      	TDC            ; Clear A
C3/5F5D:	A8      	TAY            ; Map index: 0
C3/5F5E:	A93D    	LDA #$3D       ; Pal 7, priority
C3/5F60:	97E7    	STA [$E7],Y    ; Set attributes
C3/5F62:	C8      	INY            ; Index +1
C3/5F63:	C8      	INY            ; Index +1
C3/5F64:	C01200  	CPY #$0012     ; Done 9 tiles?
C3/5F67:	D0F7    	BNE $5F60      ; Loop if not
C3/5F69:	C220    	REP #$20       ; 16-bit A
C3/5F6B:	A5E7    	LDA $E7        ; Tilemap ptr
C3/5F6D:	18      	CLC            ; Prepare ADC
C3/5F6E:	694000  	ADC #$0040     ; Go 1 row down
C3/5F71:	85E7    	STA $E7        ; Save changes
C3/5F73:	E220    	SEP #$20       ; 8-bit A
C3/5F75:	CA      	DEX            ; One less row
C3/5F76:	D0E4    	BNE $5F5C      ; Loop till last
C3/5F78:	60      	RTS

Window layout for Status menu
C3/5F79:	8B580601	; 08x03 at $588B (Title)
C3/5F7D:	EB5A0906	; 11x08 at $5AEB (Commands)
C3/5F81:	8B581C18	; 30x26 at $588B (Main)
C3/5F85:	C7580012	; 02x20 at $58C7 (Gogo, L part)
C3/5F89:	87600712	; 09x20 at $6087 (Gogo, R part)

Draw actor info in Status menu
C3/5F8D:	7B      	TDC            ; Clear A
C3/5F8E:	A528    	LDA $28        ; Member slot
C3/5F90:	0A      	ASL A          ; Double it
C3/5F91:	AA      	TAX            ; Index it
C3/5F92:	7C955F  	JMP ($5F95,X)  ; Draw info

Jump table for the above
C3/5F95:	9D5F    	; Member 1
C3/5F97:	A75F    	; Member 2
C3/5F99:	B15F    	; Member 3
C3/5F9B:	BB5F    	; Member 4

Draw member 1's info in Status menu
C3/5F9D:	A66D    	LDX $6D        ; Actor address
C3/5F9F:	8667    	STX $67        ; Memorize it
C3/5FA1:	7B      	TDC            ; ...
C3/5FA2:	A569    	LDA $69        ; Actor
C3/5FA4:	4CC25F  	JMP $5FC2      ; Draw info

Draw member 2's info in Status menu
C3/5FA7:	A66F    	LDX $6F        ; Actor address
C3/5FA9:	8667    	STX $67        ; Memorize it
C3/5FAB:	7B      	TDC            ; ...
C3/5FAC:	A56A    	LDA $6A        ; Actor
C3/5FAE:	4CC25F  	JMP $5FC2      ; Draw info

Draw member 3's info in Status menu
C3/5FB1:	A671    	LDX $71        ; Actor address
C3/5FB3:	8667    	STX $67        ; Memorize it
C3/5FB5:	7B      	TDC            ; ...
C3/5FB6:	A56B    	LDA $6B        ; Actor
C3/5FB8:	4CC25F  	JMP $5FC2      ; Draw info

Draw member 4's info in Status menu
C3/5FBB:	A673    	LDX $73        ; Actor address
C3/5FBD:	8667    	STX $67        ; Memorize it
C3/5FBF:	7B      	TDC            ; ...
C3/5FC0:	A56C    	LDA $6C        ; Actor
C3/5FC2:	220600C2	JSL $C20006    ; Load properties
C3/5FC6:	A467    	LDY $67        ; Actor's address
C3/5FC8:	20E899  	JSR $99E8      ; Set Bat.Pwr mode
C3/5FCB:	A920    	LDA #$20       ; Palette 0
C3/5FCD:	8529    	STA $29        ; Color: User's
C3/5FCF:	ADA611  	LDA $11A6      ; Vigor
C3/5FD2:	20E004  	JSR $04E0      ; Turn into text
C3/5FD5:	A2E17E  	LDX #$7EE1     ; Text position
C3/5FD8:	20C004  	JSR $04C0      ; Draw 3 digits
C3/5FDB:	ADA411  	LDA $11A4      ; Speed
C3/5FDE:	20E004  	JSR $04E0      ; Turn into text
C3/5FE1:	A2617F  	LDX #$7F61     ; Text position
C3/5FE4:	20C004  	JSR $04C0      ; Draw 3 digits
C3/5FE7:	ADA211  	LDA $11A2      ; Stamina
C3/5FEA:	20E004  	JSR $04E0      ; Turn into text
C3/5FED:	A2E17F  	LDX #$7FE1     ; Text position
C3/5FF0:	20C004  	JSR $04C0      ; Draw 3 digits
C3/5FF3:	ADA011  	LDA $11A0      ; Mag.Pwr
C3/5FF6:	20E004  	JSR $04E0      ; Turn into text
C3/5FF9:	A26188  	LDX #$8861     ; Text position
C3/5FFC:	20C004  	JSR $04C0      ; Draw 3 digits
C3/5FFF:	207193  	JSR $9371      ; Define Bat.Pwr
C3/6002:	ADAC11  	LDA $11AC      ; ...
C3/6005:	18      	CLC            ; ...
C3/6006:	6DAD11  	ADC $11AD      ; ...
C3/6009:	85F3    	STA $F3        ; ...
C3/600B:	7B      	TDC            ; ...
C3/600C:	6900    	ADC #$00       ; ...
C3/600E:	85F4    	STA $F4        ; ...
C3/6010:	202E05  	JSR $052E      ; Turn into text
C3/6013:	A27D7E  	LDX #$7E7D     ; Text position
C3/6016:	208604  	JSR $0486      ; Draw 3 digits
C3/6019:	ADBA11  	LDA $11BA      ; Defense
C3/601C:	20E004  	JSR $04E0      ; Turn into text
C3/601F:	A2FD7E  	LDX #$7EFD     ; Text position
C3/6022:	20C004  	JSR $04C0      ; Draw 3 digits
C3/6025:	ADA811  	LDA $11A8      ; Evade
C3/6028:	20E004  	JSR $04E0      ; Turn into text
C3/602B:	A27D7F  	LDX #$7F7D     ; Text position
C3/602E:	20C004  	JSR $04C0      ; Draw 3 digits
C3/6031:	ADBB11  	LDA $11BB      ; Mag.Def
C3/6034:	20E004  	JSR $04E0      ; Turn into text
C3/6037:	A2FD7F  	LDX #$7FFD     ; Text position
C3/603A:	20C004  	JSR $04C0      ; Draw 3 digits
C3/603D:	ADAA11  	LDA $11AA      ; MBlock
C3/6040:	20E004  	JSR $04E0      ; Turn into text
C3/6043:	A27D88  	LDX #$887D     ; Text position
C3/6046:	20C004  	JSR $04C0      ; Draw 3 digits
C3/6049:	A08F39  	LDY #$398F     ; Text position
C3/604C:	20CF34  	JSR $34CF      ; Draw actor name
C3/604F:	A09D39  	LDY #$399D     ; Text position
C3/6052:	20E534  	JSR $34E5      ; Actor class...
C3/6055:	A0B139  	LDY #$39B1     ; Text position
C3/6058:	20E634  	JSR $34E6      ; Draw held esper
C3/605B:	200261  	JSR $6102      ; Draw commands
C3/605E:	A920    	LDA #$20       ; Palette 0
C3/6060:	8529    	STA $29        ; Color: User's
C3/6062:	A29660  	LDX #$6096     ; Coords tbl ptr
C3/6065:	206C0C  	JSR $0C6C      ; Draw LV, HP, MP
C3/6068:	A667    	LDX $67        ; Actor's address
C3/606A:	BD1100  	LDA $0011,X    ; Experience LB
C3/606D:	85F1    	STA $F1        ; Memorize it
C3/606F:	BD1200  	LDA $0012,X    ; Experience MB
C3/6072:	85F2    	STA $F2        ; Memorize it
C3/6074:	BD1300  	LDA $0013,X    ; Experience HB
C3/6077:	85F3    	STA $F3        ; Memorize it
C3/6079:	208205  	JSR $0582      ; Turn into text
C3/607C:	A2D77C  	LDX #$7CD7     ; Text position
C3/607F:	20A304  	JSR $04A3      ; Draw 8 digits
C3/6082:	20A060  	JSR $60A0      ; Get needed exp
C3/6085:	208205  	JSR $0582      ; Turn into text
C3/6088:	A2D77D  	LDX #$7DD7     ; Text position
C3/608B:	20A304  	JSR $04A3      ; Draw 8 digits
C3/608E:	6447    	STZ $47        ; Ailments: Off
C3/6090:	20B011  	JSR $11B0      ; Hide ail. icons
C3/6093:	4C5B62  	JMP $625B      ; Display status

Tilemap pointers for stats in Status menu
C3/6096:	273A    	; Level
C3/6098:	633A    	; HP
C3/609A:	6D3A    	; Max HP
C3/609C:	A33A    	; MP
C3/609E:	AD3A    	; Max MP

Calculate experience needed to level up
C3/60A0:	A667    	LDX $67        ; Actor's address
C3/60A2:	7B      	TDC            ; ...
C3/60A3:	BD0800  	LDA $0008,X    ; Level
C3/60A6:	C963    	CMP #$63       ; 99?
C3/60A8:	F019    	BEQ $60C3      ; Branch if so
C3/60AA:	20CA60  	JSR $60CA      ; Get needed XP
C3/60AD:	A667    	LDX $67        ; Actor's address
C3/60AF:	38      	SEC            ; Prepare SBC
C3/60B0:	A5F1    	LDA $F1        ; Needed XP LB
C3/60B2:	FD1100  	SBC $0011,X    ; Deduct XP LB
C3/60B5:	85F1    	STA $F1        ; Save changes
C3/60B7:	C220    	REP #$20       ; 16-bit A
C3/60B9:	A5F2    	LDA $F2        ; Needed XP HBs
C3/60BB:	FD1200  	SBC $0012,X    ; Deduct XP HBs
C3/60BE:	85F2    	STA $F2        ; Save changes
C3/60C0:	E220    	SEP #$20       ; 8-bit A
C3/60C2:	60      	RTS

Fork: Zero experience needed
C3/60C3:	7B      	TDC            ; Clear A
C3/60C4:	AA      	TAX            ; Clear X
C3/60C5:	86F1    	STX $F1        ; Needed XP LBs
C3/60C7:	64F3    	STZ $F3        ; Needed XP HB
C3/60C9:	60      	RTS

Calculate total experience needed to level up
C3/60CA:	0A      	ASL A          ; Level x2
C3/60CB:	85EB    	STA $EB        ; Set counter
C3/60CD:	7B      	TDC            ; Clear A
C3/60CE:	AA      	TAX            ; 1st: Level 1
C3/60CF:	86F1    	STX $F1        ; Total LBs: 0
C3/60D1:	86F3    	STX $F3        ; Total HBs: 0
C3/60D3:	64EC    	STZ $EC        ; Level HB: 0
C3/60D5:	18      	CLC            ; ...
C3/60D6:	BF2082ED	LDA $ED8220,X  ; Needed XP LB
C3/60DA:	65F1    	ADC $F1        ; Add total LB
C3/60DC:	85F1    	STA $F1        ; Set total LB
C3/60DE:	E8      	INX            ; Index +1
C3/60DF:	BF2082ED	LDA $ED8220,X  ; Needed XP HB
C3/60E3:	65F2    	ADC $F2        ; Add total MB+C
C3/60E5:	85F2    	STA $F2        ; Set total MB
C3/60E7:	7B      	TDC            ; Zero A
C3/60E8:	65F3    	ADC $F3        ; Add total HB+C
C3/60EA:	85F3    	STA $F3        ; Set total HB
C3/60EC:	E8      	INX            ; Index +1
C3/60ED:	E4EB    	CPX $EB        ; At current LV?
C3/60EF:	D0E4    	BNE $60D5      ; Loop if not

Fork: Octuple total to get true value
C3/60F1:	C220    	REP #$20       ; 16-bit A
C3/60F3:	06F1    	ASL $F1        ; Total LBs x2
C3/60F5:	26F3    	ROL $F3        ; HBs x2 + C
C3/60F7:	06F1    	ASL $F1        ; Total LBs x2
C3/60F9:	26F3    	ROL $F3        ; HBs x2 + C
C3/60FB:	06F1    	ASL $F1        ; Total LBs x2
C3/60FD:	26F3    	ROL $F3        ; HBs x2 + C
C3/60FF:	E220    	SEP #$20       ; 8-bit A
C3/6101:	60      	RTS

Draw actor's command list in Status menu
C3/6102:	A0F17B  	LDY #$7BF1     ; Tilemap ptr
C3/6105:	201935  	JSR $3519      ; Set pos/WRAM/Y
C3/6108:	20E15E  	JSR $5EE1      ; Draw command 1
C3/610B:	A0717C  	LDY #$7C71     ; Tilemap ptr
C3/610E:	201935  	JSR $3519      ; Set pos/WRAM/Y
C3/6111:	C8      	INY            ; Point to cmd 2
C3/6112:	20E15E  	JSR $5EE1      ; Draw command 2
C3/6115:	A0F17C  	LDY #$7CF1     ; Tilemap ptr
C3/6118:	201935  	JSR $3519      ; Set pos/WRAM/Y
C3/611B:	C8      	INY            ; Point to cmd 2
C3/611C:	C8      	INY            ; Point to cmd 3
C3/611D:	20E15E  	JSR $5EE1      ; Draw command 3
C3/6120:	A0717D  	LDY #$7D71     ; Tilemap ptr
C3/6123:	201935  	JSR $3519      ; Set pos/WRAM/Y
C3/6126:	C8      	INY            ; Point to cmd 2
C3/6127:	C8      	INY            ; Point to cmd 3
C3/6128:	C8      	INY            ; Point to cmd 4
C3/6129:	4CE15E  	JMP $5EE1      ; Draw command 4

Handle battle command modifiers
C3/612C:	B91600  	LDA $0016,Y    ; Command
C3/612F:	C902    	CMP #$02       ; Magic?
C3/6131:	D00B    	BNE $613E      ; Branch if not
C3/6133:	5A      	PHY            ; Save index
C3/6134:	202B0D  	JSR $0D2B      ; Can use magic?
C3/6137:	B004    	BCS $613D      ; Branch if so
C3/6139:	7A      	PLY            ; Actor's address
C3/613A:	A9FF    	LDA #$FF       ; Command: None
C3/613C:	60      	RTS

Fork: Morph
C3/613D:	7A      	PLY            ; Actor's address
C3/613E:	B91600  	LDA $0016,Y    ; Command
C3/6141:	C903    	CMP #$03       ; Morph?
C3/6143:	D00A    	BNE $614F      ; Branch if not
C3/6145:	ADD11D  	LDA $1DD1      ; Event flags
C3/6148:	8904    	BIT #$04       ; Unlocked Morph?
C3/614A:	D003    	BNE $614F      ; Branch if so
C3/614C:	A9FF    	LDA #$FF       ; Command: None
C3/614E:	60      	RTS

Fork: Leap
C3/614F:	B91600  	LDA $0016,Y    ; Command
C3/6152:	C911    	CMP #$11       ; Leap?
C3/6154:	D00A    	BNE $6160      ; Branch if not
C3/6156:	ADE411  	LDA $11E4      ; Veldt flags
C3/6159:	8904    	BIT #$04       ; Can show Leap?
C3/615B:	D003    	BNE $6160      ; Branch if so
C3/615D:	A9FF    	LDA #$FF       ; Command: None
C3/615F:	60      	RTS

Fork: Dance
C3/6160:	B91600  	LDA $0016,Y    ; Command
C3/6163:	C913    	CMP #$13       ; Dance?
C3/6165:	D008    	BNE $616F      ; Branch if not
C3/6167:	AD4C1D  	LDA $1D4C      ; Known Dances
C3/616A:	D003    	BNE $616F      ; Branch if any
C3/616C:	A9FF    	LDA #$FF       ; Command: None
C3/616E:	60      	RTS

Fork: Relic effects
C3/616F:	B91600  	LDA $0016,Y    ; Command
C3/6172:	85E0    	STA $E0        ; Memorize it
C3/6174:	7B      	TDC            ; Clear A
C3/6175:	AA      	TAX            ; 1st: Capture
C3/6176:	ADD611  	LDA $11D6      ; Relic effects
C3/6179:	297C    	AND #$7C       ; Cmd upgrades
C3/617B:	0A      	ASL A          ; Shift bits
C3/617C:	0A      	ASL A          ; Got current?
C3/617D:	900A    	BCC $6189      ; Skip if not
C3/617F:	48      	PHA            ; Save upgrades
C3/6180:	BF9861C3	LDA $C36198,X  ; Cmd to switch
C3/6184:	C5E0    	CMP $E0        ; Current cmd?
C3/6186:	F00A    	BEQ $6192      ; Replace if so
C3/6188:	68      	PLA            ; Cmd upgrades
C3/6189:	E8      	INX            ; Index +1
C3/618A:	E00500  	CPX #$0005     ; Done Fight?
C3/618D:	D0ED    	BNE $617C      ; Loop if not
C3/618F:	A5E0    	LDA $E0        ; Original cmd
C3/6191:	60      	RTS

Fork: Replace command
C3/6192:	68      	PLA            ; Clean stack
C3/6193:	BF9D61C3	LDA $C3619D,X  ; New command
C3/6197:	60      	RTS

Commands to upgrade
C3/6198:	05      	; Steal
C3/6199:	0F      	; Slot
C3/619A:	0D      	; Sketch
C3/619B:	02      	; Magic
C3/619C:	00      	; Fight

Command upgrades
C3/619D:	06      	; Capture
C3/619E:	18      	; GP Rain
C3/619F:	0E      	; Control
C3/61A0:	17      	; X Magic
C3/61A1:	16      	; Jump

Replace portrait in Status menu after actor swap
C3/61A2:	7B      	TDC            ; Clear A
C3/61A3:	A560    	LDA $60        ; Queue index
C3/61A5:	AA      	TAX            ; Index it
C3/61A6:	A9FF    	LDA #$FF       ; Null value
C3/61A8:	9FC9357E	STA $7E35C9,X  ; Hide old one

Create portrait by upper-left corner
C3/61AC:	20DA61  	JSR $61DA      ; Queue OAM fn
C3/61AF:	4CE661  	JMP $61E6      ; Init sprite

Create portrait for Equip or Relic menu
C3/61B2:	20DA61  	JSR $61DA      ; Queue OAM fn
C3/61B5:	8B      	PHB            ; Save DB
C3/61B6:	A97E    	LDA #$7E       ; Bank: 7E
C3/61B8:	48      	PHA            ; Put on stack
C3/61B9:	AB      	PLB            ; Set DB to 7E
C3/61BA:	C220    	REP #$20       ; 16-bit A
C3/61BC:	A9C800  	LDA #$00C8     ; X: 200
C3/61BF:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/61C2:	E220    	SEP #$20       ; 8-bit A
C3/61C4:	7B      	TDC            ; ...
C3/61C5:	A528    	LDA $28        ; Member slot
C3/61C7:	A8      	TAY            ; Put in Y
C3/61C8:	20CC0A  	JSR $0ACC      ; Set anim ptr
C3/61CB:	C220    	REP #$20       ; 16-bit A
C3/61CD:	A93000  	LDA #$0030     ; Y: 48
C3/61D0:	9D4A34  	STA $344A,X    ; Set sprite's
C3/61D3:	E220    	SEP #$20       ; 8-bit A
C3/61D5:	200612  	JSR $1206      ; Set pose timer
C3/61D8:	AB      	PLB            ; Restore DB
C3/61D9:	60      	RTS

Create portrait A
C3/61DA:	A903    	LDA #$03       ; Min slot: 24
C3/61DC:	A0120B  	LDY #$0B12     ; C3/0B12
C3/61DF:	207311  	JSR $1173      ; Queue OAM fn
C3/61E2:	8A      	TXA            ; Queue index
C3/61E3:	8560    	STA $60        ; Set sprite's
C3/61E5:	60      	RTS

Place portrait by upper-left corner, set pose timer
C3/61E6:	8B      	PHB            ; Save DB
C3/61E7:	A97E    	LDA #$7E       ; Bank: 7E
C3/61E9:	48      	PHA            ; Put on stack
C3/61EA:	AB      	PLB            ; Set DB to 7E
C3/61EB:	7B      	TDC            ; Clear A
C3/61EC:	A528    	LDA $28        ; Member slot
C3/61EE:	A8      	TAY            ; Put in Y
C3/61EF:	20F10A  	JSR $0AF1      ; Set X position
C3/61F2:	7B      	TDC            ; ...
C3/61F3:	A528    	LDA $28        ; ...
C3/61F5:	A8      	TAY            ; ...
C3/61F6:	20FB61  	JSR $61FB      ; Set Y/ptr/timer
C3/61F9:	AB      	PLB            ; Restore DB
C3/61FA:	60      	RTS

Initialize variables for portrait by upper-left corner
C3/61FB:	20CC0A  	JSR $0ACC      ; Load anim ptr
C3/61FE:	C220    	REP #$20       ; 16-bit A
C3/6200:	A93800  	LDA #$0038     ; Y: 56
C3/6203:	9D4A34  	STA $344A,X    ; Set sprite's
C3/6206:	E220    	SEP #$20       ; 8-bit A
C3/6208:	4C0612  	JMP $1206      ; Set pose timer

Set to condense BG3 text in Status menu
C3/620B:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/620D:	8D5043  	STA $4350      ; Set DMA mode
C3/6210:	A912    	LDA #$12       ; $2112
C3/6212:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/6215:	A02A62  	LDY #$622A     ; C3/622A
C3/6218:	8C5243  	STY $4352      ; Set src LBs
C3/621B:	A9C3    	LDA #$C3       ; Bank: C3
C3/621D:	8D5443  	STA $4354      ; Set src HB
C3/6220:	A9C3    	LDA #$C3       ; ...
C3/6222:	8D5743  	STA $4357      ; Set indir HB
C3/6225:	A920    	LDA #$20       ; Channel: 5
C3/6227:	0443    	TSB $43        ; Queue HDMA-5
C3/6229:	60      	RTS

Text shifting table for the above
C3/622A:	27 0000 	; Status
C3/622D:	0C 0400 	; Cmd choice A
C3/6230:	0C 0800 	; Cmd choice B
C3/6233:	0C 0C00 	; Cmd choice C
C3/6236:	0C 1000 	; Cmd choice D
C3/6239:	0C 1400 	; Command A
C3/623C:	0C 1800 	; Command B
C3/623F:	0C 1C00 	; Command C
C3/6242:	0C 2000 	; Command D
C3/6245:	0C 2400 	; Needed exp.
C3/6248:	0C 2800 	; Bat.Pwr
C3/624B:	0C 2C00 	; Defense
C3/624E:	0C 3000 	; Evade
C3/6251:	0C 3400 	; Mag.Def
C3/6254:	0C 3800 	; MBlock
C3/6257:	0C 3C00 	; Nothing
C3/625A:	00      	; End

Display status effects in Status menu
C3/625B:	A09D39  	LDY #$399D     ; Text position
C3/625E:	A25020  	LDX #$2050     ; Icon position
C3/6261:	86E7    	STX $E7        ; Set as current
C3/6263:	201935  	JSR $3519      ; Set text pos
C3/6266:	B91400  	LDA $0014,Y    ; Wounded?
C3/6269:	307C    	BMI $62E7      ; Draw it if so
C3/626B:	2970    	AND #$70       ; Clear/Imp/Pet
C3/626D:	85E1    	STA $E1        ; Memorize them
C3/626F:	B91400  	LDA $0014,Y    ; Status effects
C3/6272:	2907    	AND #$07       ; Dark/Zom/Poison
C3/6274:	0A      	ASL A          ; Put in b1-b3
C3/6275:	85E2    	STA $E2        ; Memorize them
C3/6277:	B91500  	LDA $0015,Y    ; Status effects
C3/627A:	2980    	AND #$80       ; Isolate Float
C3/627C:	05E1    	ORA $E1        ; Add Clear, etc.
C3/627E:	05E2    	ORA $E2        ; Add Dark, etc.
C3/6280:	85E1    	STA $E1        ; ...
C3/6282:	F05D    	BEQ $62E1      ; Blank if none
C3/6284:	64F1    	STZ $F1        ; GFX index LB: 0
C3/6286:	64F2    	STZ $F2        ; GFX index HB: 0
C3/6288:	A20700  	LDX #$0007     ; Status left: 7
C3/628B:	DA      	PHX            ; Save counter
C3/628C:	0A      	ASL A          ; Got current?
C3/628D:	9046    	BCC $62D5      ; Skip if not
C3/628F:	48      	PHA            ; Save status
C3/6290:	A903    	LDA #$03       ; Min slot: 24
C3/6292:	A0427B  	LDY #$7B42     ; C3/7B42
C3/6295:	207311  	JSR $1173      ; Queue icon OAM
C3/6298:	A901    	LDA #$01       ; Pans with BG1
C3/629A:	9F4A367E	STA $7E364A,X  ; Set OBJ flags
C3/629E:	7B      	TDC            ; Anim mode: 0
C3/629F:	9F49367E	STA $7E3649,X  ; Set icon's
C3/62A3:	9B      	TXY            ; Queue index
C3/62A4:	A6F1    	LDX $F1        ; GFX index
C3/62A6:	8B      	PHB            ; Save DB
C3/62A7:	A97E    	LDA #$7E       ; Bank: 7E
C3/62A9:	48      	PHA            ; Put on stack
C3/62AA:	AB      	PLB            ; Set DB to 7E
C3/62AB:	C220    	REP #$20       ; 16-bit A
C3/62AD:	BF25ECD8	LDA $D8EC25,X  ; Anim table ptr
C3/62B1:	99C932  	STA $32C9,Y    ; Set icon's
C3/62B4:	E220    	SEP #$20       ; 8-bit A
C3/62B6:	A5E7    	LDA $E7        ; X position
C3/62B8:	99CA33  	STA $33CA,Y    ; Set icon's
C3/62BB:	A5E8    	LDA $E8        ; Y position
C3/62BD:	994A34  	STA $344A,Y    ; Set icon's
C3/62C0:	7B      	TDC            ; Clear A
C3/62C1:	99CB33  	STA $33CB,Y    ; No use...
C3/62C4:	994B34  	STA $344B,Y    ; No use...
C3/62C7:	A9D8    	LDA #$D8       ; Bank: D8
C3/62C9:	99CA35  	STA $35CA,Y    ; Set ptr HB
C3/62CC:	AB      	PLB            ; Restore DB
C3/62CD:	18      	CLC            ; Prepare ADC
C3/62CE:	A90A    	LDA #$0A       ; Modifier: +10
C3/62D0:	65E7    	ADC $E7        ; Add current X
C3/62D2:	85E7    	STA $E7        ; Set current X
C3/62D4:	68      	PLA            ; Status effects
C3/62D5:	E6F1    	INC $F1        ; GFX index +1
C3/62D7:	E6F1    	INC $F1        ; GFX index +1
C3/62D9:	FA      	PLX            ; Status left
C3/62DA:	CA      	DEX            ; One less left
C3/62DB:	D0AE    	BNE $628B      ; Loop till last
C3/62DD:	A920    	LDA #$20       ; Palette 0
C3/62DF:	8529    	STA $29        ; Color: User's
C3/62E1:	200663  	JSR $6306      ; Load 8 spaces
C3/62E4:	4CD97F  	JMP $7FD9      ; Blank "Wounded"

Fork: Draw "Wounded"
C3/62E7:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/62EA:	8E8121  	STX $2181      ; Set WRAM LBs
C3/62ED:	A600    	LDX $00        ; Index: 0
C3/62EF:	BF1B37C3	LDA $C3371B,X  ; Letter
C3/62F3:	8D8021  	STA $2180      ; Add to string
C3/62F6:	E8      	INX            ; Point to next
C3/62F7:	E00800  	CPX #$0008     ; Copied 8?
C3/62FA:	D0F3    	BNE $62EF      ; Loop if not
C3/62FC:	9C8021  	STZ $2180      ; End string
C3/62FF:	A928    	LDA #$28       ; Palette 2
C3/6301:	8529    	STA $29        ; Color: Gray
C3/6303:	4CD97F  	JMP $7FD9      ; Draw string

Create blank string for erasing "Wounded"
C3/6306:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/6309:	8E8121  	STX $2181      ; Set WRAM LBs
C3/630C:	A600    	LDX $00        ; Spaces: 0
C3/630E:	A9FF    	LDA #$FF       ; Space char
C3/6310:	8D8021  	STA $2180      ; Add to string
C3/6313:	E8      	INX            ; One more done
C3/6314:	E00800  	CPX #$0008     ; Added 8?
C3/6317:	D0F7    	BNE $6310      ; Loop if not
C3/6319:	9C8021  	STZ $2180      ; End string
C3/631C:	60      	RTS

42: Initialize Lineup's Status menu
C3/631D:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/6320:	AD0002  	LDA $0200      ; Menu number
C3/6323:	8522    	STA $22        ; Memorize it
C3/6325:	9C0002  	STZ $0200      ; Actor arrows: Off...
C3/6328:	6425    	STZ $25        ; Never read...
C3/632A:	A940    	LDA #$40       ; Channel: 6
C3/632C:	1443    	TRB $43        ; Halt HDMA-6...
C3/632E:	200B62  	JSR $620B      ; Set to shift text
C3/6331:	205463  	JSR $6354      ; Draw menu; portrait
C3/6334:	A901    	LDA #$01       ; C3/1D7E
C3/6336:	8526    	STA $26        ; Next: Fade-in
C3/6338:	A943    	LDA #$43       ; C3/633F
C3/633A:	8527    	STA $27        ; Queue: Sustain menu
C3/633C:	4C4135  	JMP $3541      ; BRT:1 + NMI

43: Sustain Lineup's Status menu
C3/633F:	A509    	LDA $09        ; No-autofire keys
C3/6341:	8980    	BIT #$80       ; Pushing B?
C3/6343:	F00E    	BEQ $6353      ; Exit if not
C3/6345:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/6348:	A54C    	LDA $4C        ; Menu return cmd
C3/634A:	8527    	STA $27        ; Queue menu exit
C3/634C:	6426    	STZ $26        ; Next: Fade-out
C3/634E:	A522    	LDA $22        ; Former menu
C3/6350:	8D0002  	STA $0200      ; Set as current
C3/6353:	60      	RTS

Draw Lineup's Status menu, create portrait
C3/6354:	20175D  	JSR $5D17      ; Draw windows
C3/6357:	203C5D  	JSR $5D3C      ; Draw blue text
C3/635A:	207963  	JSR $6379      ; Get actor address
C3/635D:	20C25F  	JSR $5FC2      ; Draw actor info
C3/6360:	20775D  	JSR $5D77      ; Upload tilemaps
C3/6363:	20DA61  	JSR $61DA      ; Init portrait
C3/6366:	8B      	PHB            ; Save DB
C3/6367:	A97E    	LDA #$7E       ; Bank: 7E
C3/6369:	48      	PHA            ; Put on stack
C3/636A:	AB      	PLB            ; Set DB to 7E
C3/636B:	7B      	TDC            ; Clear A
C3/636C:	A528    	LDA $28        ; Actor
C3/636E:	A8      	TAY            ; Index it
C3/636F:	208E63  	JSR $638E      ; Set portrait's X
C3/6372:	7B      	TDC            ; Clear A
C3/6373:	A8      	TAY            ; Portrait slot: 1
C3/6374:	20FB61  	JSR $61FB      ; Set Y/ptr/timer
C3/6377:	AB      	PLB            ; Restore DB
C3/6378:	60      	RTS

Load actor number and address for Lineup's Status menu
C3/6379:	7B      	TDC            ; Clear A
C3/637A:	A5C9    	LDA $C9        ; Actor
C3/637C:	8528    	STA $28        ; Memorize it
C3/637E:	0A      	ASL A          ; Double it
C3/637F:	AA      	TAX            ; Index it
C3/6380:	C220    	REP #$20       ; 16-bit A
C3/6382:	BF6969C3	LDA $C36969,X  ; Actor's address
C3/6386:	8567    	STA $67        ; Memorize it
C3/6388:	E220    	SEP #$20       ; 8-bit A
C3/638A:	7B      	TDC            ; ...
C3/638B:	A5C9    	LDA $C9        ; Actor
C3/638D:	60      	RTS

Set portrait's X position for Lineup's Status menu
C3/638E:	B95018  	LDA $1850,Y    ; Actor info
C3/6391:	8920    	BIT #$20       ; Back row?
C3/6393:	F007    	BEQ $639C      ; Branch if not
C3/6395:	C220    	REP #$20       ; 16-bit A
C3/6397:	A91A00  	LDA #$001A     ; X: 26
C3/639A:	8005    	BRA $63A1      ; Skip 2 lines
C3/639C:	C220    	REP #$20       ; 16-bit A
C3/639E:	A90E00  	LDA #$000E     ; X: 15
C3/63A1:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/63A4:	E220    	SEP #$20       ; 8-bit A
C3/63A6:	60      	RTS

6A: Sustain shifted Status menu
C3/63A7:	200964  	JSR $6409      ; Handle D-Pad
C3/63AA:	A508    	LDA $08        ; No-autofire keys
C3/63AC:	8980    	BIT #$80       ; Pushing A?
C3/63AE:	F02A    	BEQ $63DA      ; Branch if not
C3/63B0:	20B20E  	JSR $0EB2      ; Sound: Click
C3/63B3:	9C6500  	STZ $0065      ; Edited slot HB
C3/63B6:	7B      	TDC            ; Clear A
C3/63B7:	A54B    	LDA $4B        ; Cursor slot
C3/63B9:	AA      	TAX            ; Index it
C3/63BA:	BF8A9D7E	LDA $7E9D8A,X  ; Chosen command
C3/63BE:	85E0    	STA $E0        ; Memorize it
C3/63C0:	7B      	TDC            ; ...
C3/63C1:	A528    	LDA $28        ; Member slot
C3/63C3:	0A      	ASL A          ; Double it
C3/63C4:	AA      	TAX            ; Index it
C3/63C5:	B46D    	LDY $6D,X      ; Actor's address
C3/63C7:	C220    	REP #$20       ; 16-bit A
C3/63C9:	98      	TYA            ; Move it to A
C3/63CA:	18      	CLC            ; Prepare ADC
C3/63CB:	6564    	ADC $64        ; Add edited slot
C3/63CD:	A8      	TAY            ; Index sum
C3/63CE:	E220    	SEP #$20       ; 8-bit A
C3/63D0:	A5E0    	LDA $E0        ; Chosen command
C3/63D2:	991600  	STA $0016,Y    ; Assign to actor
C3/63D5:	200261  	JSR $6102      ; Redraw commands
C3/63D8:	8009    	BRA $63E3      ; Shift screen

Fork: Handle B
C3/63DA:	A509    	LDA $09        ; No-autofire keys
C3/63DC:	8980    	BIT #$80       ; Pushing B?
C3/63DE:	F022    	BEQ $6402      ; Exit if not
C3/63E0:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/63E3:	A901    	LDA #$01       ; Blinker: Off
C3/63E5:	1446    	TRB $46        ; Set menu flag
C3/63E7:	A906    	LDA #$06       ; Frames: 6
C3/63E9:	8520    	STA $20        ; Set scroll timer
C3/63EB:	A0F4FF  	LDY #$FFF4     ; Speed: -12
C3/63EE:	849C    	STY $9C        ; Set scroll speed
C3/63F0:	A90C    	LDA #$0C       ; C3/21F5
C3/63F2:	8527    	STA $27        ; Queue: Normal menu
C3/63F4:	A965    	LDA #$65       ; C3/36E7
C3/63F6:	8526    	STA $26        ; Next: Shift screen
C3/63F8:	20FF36  	JSR $36FF      ; Load navig data
C3/63FB:	A55E    	LDA $5E        ; Old cursor row
C3/63FD:	854E    	STA $4E        ; Set as current
C3/63FF:	200837  	JSR $3708      ; Relocate cursor
C3/6402:	60      	RTS

Load navigation data for shifted Status menu
C3/6403:	A01264  	LDY #$6412     ; C3/6412
C3/6406:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for shifted Status menu
C3/6409:	202D07  	JSR $072D      ; Handle D-Pad
C3/640C:	A01764  	LDY #$6417     ; C3/6417
C3/640F:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for shifted Status menu
C3/6412:	80      	; Wraps vertically
C3/6413:	00      	; Initial column
C3/6414:	00      	; Initial row
C3/6415:	01      	; 1 column
C3/6416:	10      	; 16 rows

Cursor positions for shifted Status menu
C3/6417:	F010    	; Empty
C3/6419:	F01C    	; Command 1
C3/641B:	F028    	; Command 2
C3/641D:	F034    	; Command 3
C3/641F:	F040    	; Command 4
C3/6421:	F04C    	; Command 5
C3/6423:	F058    	; Command 6
C3/6425:	F064    	; Command 7
C3/6427:	F070    	; Command 8
C3/6429:	F07C    	; Command 9
C3/642B:	F088    	; Command 10
C3/642D:	F094    	; Command 11
C3/642F:	F0A0    	; Command 12
C3/6431:	F0AC    	; Command 13
C3/6433:	F0B8    	; Command 14
C3/6435:	F0C4    	; Command 15 (unused)

Text pointers for Status menu
C3/6437:	9764    	; Vigor
C3/6439:	9F64    	; Stamina
C3/643B:	A964    	; Mag.Pwr
C3/643D:	B364    	; Evade %
C3/643F:	BD64    	; MBlock%
C3/6441:	C764    	; ..
C3/6443:	CB64    	; ..
C3/6445:	CF64    	; ..
C3/6447:	D364    	; ..
C3/6449:	D764    	; ..
C3/644B:	DB64    	; ..
C3/644D:	DF64    	; ..
C3/644F:	E364    	; ..
C3/6451:	E764    	; ..
C3/6453:	6F64    	; Status

Text pointers for Status menu
C3/6455:	8864    	; LV
C3/6457:	8D64    	; HP
C3/6459:	9264    	; MP

Text pointers for Status menu
C3/645B:	7864    	; /
C3/645D:	7C64    	; /
C3/645F:	8064    	; %
C3/6461:	8464    	; %

Text pointers for Status menu
C3/6463:	EB64    	; Speed
C3/6465:	F364    	; Bat.Pwr
C3/6467:	FD64    	; Defense
C3/6469:	0765    	; Mag.Def
C3/646B:	1165    	; Your Exp:
C3/646D:	1D65    	; For level up:

Positioned text for Status menu
C3/646F:	CD78 92AD9AADAEAC00               ; Status
C3/6478:	6B3A C000                         ; /
C3/647C:	AB3A C000                         ; /
C3/6480:	837F CD00                         ; %
C3/6484:	8388 CD00                         ; %
C3/6488:	1D3A 8B9500                       ; LV
C3/648D:	5D3A 878F00                       ; HP
C3/6492:	9D3A 8C8F00                       ; MP
C3/6497:	CF7E 95A2A0A8AB00                 ; Vigor
C3/649F:	CF7F 92AD9AA6A2A79A00             ; Stamina
C3/64A9:	4F88 8C9AA0C58FB0AB00             ; Mag.Pwr
C3/64B3:	697F 84AF9A9D9EFFCD00             ; Evade %
C3/64BD:	6988 8C81A5A89CA4CD00             ; MBlock%
C3/64C7:	DD7E D300                         ; ..
C3/64CB:	5D7F D300                         ; ..
C3/64CF:	DD7F D300                         ; ..
C3/64D3:	5D88 D300                         ; ..
C3/64D7:	FB7E D300                         ; ..
C3/64DB:	7B7F D300                         ; ..
C3/64DF:	7B7E D300                         ; ..
C3/64E3:	FB7F D300                         ; ..
C3/64E7:	7B88 D300                         ; ..
C3/64EB:	4F7F 92A99E9E9D00                 ; Speed
C3/64F3:	697E 819AADC58FB0AB00             ; Bat.Pwr
C3/64FD:	E97E 839E9F9EA7AC9E00             ; Defense
C3/6507:	E97F 8C9AA0C5839E9F00             ; Mag.Def
C3/6511:	4D7C 98A8AEABFF84B1A9C100         ; Your Exp:
C3/651D:	4D7D 85A8ABFFA59EAF9EA5FFAEA9C100 ; For level up:

5D: Initialize actor naming menu
C3/652D:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/6530:	AC0102  	LDY $0201      ; Actor's address
C3/6533:	8467    	STY $67        ; Memorize it
C3/6535:	200469  	JSR $6904      ; Reset BGs' X/Y
C3/6538:	A902    	LDA #$02       ; Main cursor: On
C3/653A:	8546    	STA $46        ; Bar/Blinker: Off
C3/653C:	644A    	STZ $4A        ; Screen: 1st...
C3/653E:	203866  	JSR $6638      ; Load navig data
C3/6541:	204166  	JSR $6641      ; Relocate cursor
C3/6544:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/6547:	200567  	JSR $6705      ; Draw menu
C3/654A:	202166  	JSR $6621      ; Set arrow's column
C3/654D:	203C68  	JSR $683C      ; Set to shift text
C3/6550:	208C67  	JSR $678C      ; Get portrait colors
C3/6553:	207167  	JSR $6771      ; Upload portrait GFX
C3/6556:	20D866  	JSR $66D8      ; Create portrait
C3/6559:	A902    	LDA #$02       ; Min slot: 16
C3/655B:	A0A368  	LDY #$68A3     ; C3/68A3
C3/655E:	207311  	JSR $1173      ; Queue arrow OAM
C3/6561:	A95F    	LDA #$5F       ; C3/656C
C3/6563:	8527    	STA $27        ; Queue: Sustain menu
C3/6565:	A901    	LDA #$01       ; C3/1D7E
C3/6567:	8526    	STA $26        ; Next: Fade-in
C3/6569:	4C4135  	JMP $3541      ; BRT:1 + NMI

5F: Sustain actor naming menu
C3/656C:	20E90E  	JSR $0EE9      ; Queue text upload
C3/656F:	203E66  	JSR $663E      ; Handle D-Pad
C3/6572:	205B67  	JSR $675B      ; Redraw actor name

Fork: Handle Start
C3/6575:	A509    	LDA $09        ; No-autofire keys
C3/6577:	8910    	BIT #$10       ; Pushing Start?
C3/6579:	F003    	BEQ $657E      ; Branch if not
C3/657B:	4CC265  	JMP $65C2      ; Validate name

Fork: Handle A
C3/657E:	A508    	LDA $08        ; No-autofire keys
C3/6580:	8980    	BIT #$80       ; Pushing A?
C3/6582:	F011    	BEQ $6595      ; Branch if not
C3/6584:	20B20E  	JSR $0EB2      ; Sound: Click
C3/6587:	7B      	TDC            ; Mode: Add
C3/6588:	20E865  	JSR $65E8      ; Add letter
C3/658B:	A528    	LDA $28        ; Arrow's column
C3/658D:	C905    	CMP #$05       ; Rightmost?
C3/658F:	F001    	BEQ $6592      ; Exit if so
C3/6591:	1A      	INC A          ; Go right by 1
C3/6592:	8528    	STA $28        ; Save changes
C3/6594:	60      	RTS

Fork: Handle B
C3/6595:	A509    	LDA $09        ; No-autofire keys
C3/6597:	8980    	BIT #$80       ; Pushing B?
C3/6599:	F026    	BEQ $65C1      ; Exit if not
C3/659B:	20C70E  	JSR $0EC7      ; Sound: Delete
C3/659E:	A528    	LDA $28        ; Arrow's column
C3/65A0:	F01F    	BEQ $65C1      ; Exit if first
C3/65A2:	C905    	CMP #$05       ; Rightmost?
C3/65A4:	D00F    	BNE $65B5      ; Branch if not
C3/65A6:	200F66  	JSR $660F      ; Define Y
C3/65A9:	B90200  	LDA $0002,Y    ; Letter 6
C3/65AC:	C9FF    	CMP #$FF       ; Blank?
C3/65AE:	F005    	BEQ $65B5      ; Branch if so
C3/65B0:	A9FF    	LDA #$FF       ; Mode: Delete V1
C3/65B2:	4CE865  	JMP $65E8      ; Delete letter 6

Fork: Delete non-sixth letter
C3/65B5:	A901    	LDA #$01       ; Mode: Delete V2
C3/65B7:	20E865  	JSR $65E8      ; Delete letter
C3/65BA:	A528    	LDA $28        ; Arrow's column
C3/65BC:	F001    	BEQ $65BF      ; ...
C3/65BE:	3A      	DEC A          ; Go left by 1
C3/65BF:	8528    	STA $28        ; Save changes
C3/65C1:	60      	RTS

Validate entered actor name
C3/65C2:	A467    	LDY $67        ; Actor's address
C3/65C4:	A600    	LDX $00        ; Letter count: 0
C3/65C6:	B90200  	LDA $0002,Y    ; Letter
C3/65C9:	C9FF    	CMP #$FF       ; Terminator?
C3/65CB:	D00E    	BNE $65DB      ; Valid if not
C3/65CD:	C8      	INY            ; Letter index +1
C3/65CE:	E8      	INX            ; Letter count +1
C3/65CF:	E00600  	CPX #$0006     ; Done 6 letters?
C3/65D2:	D0F2    	BNE $65C6      ; Loop if not
C3/65D4:	20C00E  	JSR $0EC0      ; Play buzzer
C3/65D7:	205D30  	JSR $305D      ; Pixelate screen
C3/65DA:	60      	RTS            ; Exit
C3/65DB:	20B20E  	JSR $0EB2      ; Sound: Click
C3/65DE:	9C0502  	STZ $0205      ; Never read...
C3/65E1:	A9FF    	LDA #$FF       ; Null value
C3/65E3:	8527    	STA $27        ; Queue menu exit
C3/65E5:	6426    	STZ $26        ; Next: Fade-out
C3/65E7:	60      	RTS

Add or remove letter from actor name
C3/65E8:	48      	PHA            ; Save mode
C3/65E9:	200F66  	JSR $660F      ; Define Y
C3/65EC:	68      	PLA            ; Deleting 6th?
C3/65ED:	300B    	BMI $65FA      ; Branch if so
C3/65EF:	F00F    	BEQ $6600      ; Branch if adding
C3/65F1:	A9FF    	LDA #$FF       ; Char: Terminator
C3/65F3:	990200  	STA $0002,Y    ; ...
C3/65F6:	990100  	STA $0001,Y    ; Clear last letter
C3/65F9:	60      	RTS

Fork: Delete letter 6
C3/65FA:	A9FF    	LDA #$FF       ; Char: Terminator
C3/65FC:	990200  	STA $0002,Y    ; Clear letter 6
C3/65FF:	60      	RTS

Fork: Add selected letter
C3/6600:	7B      	TDC            ; Clear A
C3/6601:	A54B    	LDA $4B        ; Selected slot
C3/6603:	18      	CLC            ; Prepare ADC
C3/6604:	654A    	ADC $4A        ; For SFC...
C3/6606:	AA      	TAX            ; Index sum
C3/6607:	BFC8E8D8	LDA $D8E8C8,X  ; Chosen letter
C3/660B:	990200  	STA $0002,Y    ; Add to name
C3/660E:	60      	RTS

Get index for overwritten letter in actor naming menu
C3/660F:	A467    	LDY $67        ; Actor's address
C3/6611:	A528    	LDA $28        ; Arrow column
C3/6613:	85E7    	STA $E7        ; Memorize it
C3/6615:	64E8    	STZ $E8        ; Clear HB
C3/6617:	C220    	REP #$20       ; 16-bit A
C3/6619:	98      	TYA            ; Actor's address
C3/661A:	18      	CLC            ; Prepare ADC
C3/661B:	65E7    	ADC $E7        ; Add column
C3/661D:	A8      	TAY            ; Put sum in Y
C3/661E:	E220    	SEP #$20       ; 8-bit A
C3/6620:	60      	RTS

Initialize arrow's column for actor naming menu
C3/6621:	A467    	LDY $67        ; Actor's address
C3/6623:	A600    	LDX $00        ; Column: 1st
C3/6625:	B90200  	LDA $0002,Y    ; Current letter
C3/6628:	C9FF    	CMP #$FF       ; Terminator?
C3/662A:	F008    	BEQ $6634      ; Branch if so
C3/662C:	C8      	INY            ; Point to next
C3/662D:	E8      	INX            ; Arrow column +1
C3/662E:	E00600  	CPX #$0006     ; Done 6 letters?
C3/6631:	D0F2    	BNE $6625      ; Loop if not
C3/6633:	CA      	DEX            ; Column: 6th
C3/6634:	8A      	TXA            ; Move column to A
C3/6635:	8528    	STA $28        ; Set arrow column
C3/6637:	60      	RTS

Load navigation data for actor naming menu
C3/6638:	A04766  	LDY #$6647     ; C3/6647
C3/663B:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for actor naming menu
C3/663E:	202D07  	JSR $072D      ; Handle D-Pad
C3/6641:	A04C66  	LDY #$664C     ; C3/664C
C3/6644:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for actor naming menu
C3/6647:	01      	; Wraps horizontally
C3/6648:	00      	; Initial column
C3/6649:	00      	; Initial row
C3/664A:	0A      	; 10 columns
C3/664B:	07      	; 7 rows

Cursor positions for actor naming menu
C3/664C:	3858    	; A
C3/664E:	4858    	; B
C3/6650:	5858    	; C
C3/6652:	6858    	; D
C3/6654:	7858    	; E
C3/6656:	9058    	; a
C3/6658:	A058    	; b
C3/665A:	B058    	; c
C3/665C:	C058    	; d
C3/665E:	D058    	; e
C3/6660:	3868    	; F
C3/6662:	4868    	; G
C3/6664:	5868    	; H
C3/6666:	6868    	; I
C3/6668:	7868    	; J
C3/666A:	9068    	; f
C3/666C:	A068    	; g
C3/666E:	B068    	; h
C3/6670:	C068    	; i
C3/6672:	D068    	; j
C3/6674:	3878    	; K
C3/6676:	4878    	; L
C3/6678:	5878    	; M
C3/667A:	6878    	; N
C3/667C:	7878    	; O
C3/667E:	9078    	; k
C3/6680:	A078    	; l
C3/6682:	B078    	; m
C3/6684:	C078    	; n
C3/6686:	D078    	; o
C3/6688:	3888    	; P
C3/668A:	4888    	; Q
C3/668C:	5888    	; R
C3/668E:	6888    	; S
C3/6690:	7888    	; T
C3/6692:	9088    	; p
C3/6694:	A088    	; q
C3/6696:	B088    	; r
C3/6698:	C088    	; s
C3/669A:	D088    	; t
C3/669C:	3898    	; U
C3/669E:	4898    	; V
C3/66A0:	5898    	; W
C3/66A2:	6898    	; X
C3/66A4:	7898    	; Y
C3/66A6:	9098    	; u
C3/66A8:	A098    	; v
C3/66AA:	B098    	; w
C3/66AC:	C098    	; x
C3/66AE:	D098    	; y
C3/66B0:	38A8    	; Z
C3/66B2:	48A8    	; !
C3/66B4:	58A8    	; ?
C3/66B6:	68A8    	; /
C3/66B8:	78A8    	; :
C3/66BA:	90A8    	; z
C3/66BC:	A0A8    	; 
C3/66BE:	B0A8    	; 
C3/66C0:	C0A8    	; -
C3/66C2:	D0A8    	; .
C3/66C4:	38B8    	; 0
C3/66C6:	48B8    	; 1
C3/66C8:	58B8    	; 2
C3/66CA:	68B8    	; 3
C3/66CC:	78B8    	; 4
C3/66CE:	90B8    	; 5
C3/66D0:	A0B8    	; 6
C3/66D2:	B0B8    	; 7
C3/66D4:	C0B8    	; 8
C3/66D6:	D0B8    	; 9

Create portrait for actor naming menu
C3/66D8:	A903    	LDA #$03       ; Min slot: 24
C3/66DA:	A0120B  	LDY #$0B12     ; C3/0B12
C3/66DD:	207311  	JSR $1173      ; Queue OAM fn
C3/66E0:	8B      	PHB            ; Save DB
C3/66E1:	A97E    	LDA #$7E       ; Bank: 7E
C3/66E3:	48      	PHA            ; Put on stack
C3/66E4:	AB      	PLB            ; Set DB to 7E
C3/66E5:	C220    	REP #$20       ; 16-bit A
C3/66E7:	A98C0B  	LDA #$0B8C     ; Anim table ptr
C3/66EA:	9DC932  	STA $32C9,X    ; Set sprite's
C3/66ED:	A91000  	LDA #$0010     ; X: 16
C3/66F0:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/66F3:	A91000  	LDA #$0010     ; Y: 16
C3/66F6:	9D4A34  	STA $344A,X    ; Set sprite's
C3/66F9:	E220    	SEP #$20       ; 8-bit A
C3/66FB:	A9C3    	LDA #$C3       ; Bank: C3
C3/66FD:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/6700:	200612  	JSR $1206      ; Set pose timer
C3/6703:	AB      	PLB            ; Restore DB
C3/6704:	60      	RTS

Draw actor naming menu
C3/6705:	20286A  	JSR $6A28      ; Clear BG2 map A
C3/6708:	A06567  	LDY #$6765     ; C3/6765
C3/670B:	204103  	JSR $0341      ; Draw font window
C3/670E:	A06967  	LDY #$6769     ; C3/6769
C3/6711:	204103  	JSR $0341      ; Draw face window
C3/6714:	A06D67  	LDY #$676D     ; C3/676C
C3/6717:	204103  	JSR $0341      ; Draw top window
C3/671A:	A06167  	LDY #$6761     ; C3/6761
C3/671D:	204103  	JSR $0341      ; Draw name window
C3/6720:	20520E  	JSR $0E52      ; Upload windows
C3/6723:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/6726:	20196A  	JSR $6A19      ; Clear BG1 map B
C3/6729:	201E6A  	JSR $6A1E      ; Clear BG1 map C
C3/672C:	A920    	LDA #$20       ; Palette 0
C3/672E:	8529    	STA $29        ; Color: User's
C3/6730:	A25B39  	LDX #$395B     ; Tilemap ptr
C3/6733:	A0C8E8  	LDY #$E8C8     ; D8/E8C8
C3/6736:	84E7    	STY $E7        ; Set src LBs
C3/6738:	A9D8    	LDA #$D8       ; Bank: D8
C3/673A:	85E9    	STA $E9        ; Set src HB
C3/673C:	A907    	LDA #$07       ; Text rows: 7
C3/673E:	85E5    	STA $E5        ; Set for options
C3/6740:	20BF67  	JSR $67BF      ; Draw options
C3/6743:	205B67  	JSR $675B      ; Draw actor name
C3/6746:	A0E368  	LDY #$68E3     ; Text pointer
C3/6749:	20F902  	JSR $02F9      ; Draw "Please..."
C3/674C:	20280E  	JSR $0E28      ; Upload BG1 A+B
C3/674F:	20360E  	JSR $0E36      ; Upload BG1 B+C
C3/6752:	20440E  	JSR $0E44      ; Upload BG1 C+D
C3/6755:	203C6A  	JSR $6A3C      ; Clear BG3 map A
C3/6758:	4C6E0E  	JMP $0E6E      ; Upload BG3 A+B

Draw actor name for actor naming menu
C3/675B:	A02942  	LDY #$4229     ; Text position
C3/675E:	4CCF34  	JMP $34CF      ; Draw actor name

Window layout for actor naming menu
C3/6761:	9B591202	; 20x04 at $599B (Name)
C3/6765:	575A1611	; 24x19 at $5A57 (Options)
C3/6769:	8B580505	; 07x07 at $588B (Portrait)
C3/676D:	99581402	; 22x04 at $5899 ("Please...")

Upload portrait for actor naming menu
C3/6771:	A467    	LDY $67        ; Actor's address
C3/6773:	7B      	TDC            ; Clear A
C3/6774:	B90100  	LDA $0001,Y    ; Graphics set
C3/6777:	C220    	REP #$20       ; 16-bit A
C3/6779:	0A      	ASL A          ; Double it
C3/677A:	AA      	TAX            ; Index it
C3/677B:	A90026  	LDA #$2600     ; $2600
C3/677E:	8D1621  	STA $2116      ; Set VRAM ptr
C3/6781:	BF1B6FC3	LDA $C36F1B,X  ; GFX pointer
C3/6785:	AA      	TAX            ; Index it
C3/6786:	200070  	JSR $7000      ; Load portrait
C3/6789:	E220    	SEP #$20       ; 8-bit A
C3/678B:	60      	RTS

Load portrait colors for actor naming menu
C3/678C:	A910    	LDA #$10       ; Colors: 16
C3/678E:	85E3    	STA $E3        ; Set counter
C3/6790:	A467    	LDY $67        ; Actor's address
C3/6792:	7B      	TDC            ; Clear A
C3/6793:	B90100  	LDA $0001,Y    ; Graphics set
C3/6796:	AA      	TAX            ; Index it
C3/6797:	BF006FC3	LDA $C36F00,X  ; Palette number
C3/679B:	C220    	REP #$20       ; 16-bit A
C3/679D:	0A      	ASL A          ; x2
C3/679E:	0A      	ASL A          ; x4
C3/679F:	0A      	ASL A          ; x8
C3/67A0:	0A      	ASL A          ; x16
C3/67A1:	0A      	ASL A          ; x32
C3/67A2:	AA      	TAX            ; Index it
C3/67A3:	A400    	LDY $00        ; RAM index: 0
C3/67A5:	C220    	REP #$20       ; 16-bit A
C3/67A7:	DA      	PHX            ; Save ROM index
C3/67A8:	BF6058ED	LDA $ED5860,X  ; Portrait color
C3/67AC:	BB      	TYX            ; RAM index
C3/67AD:	9F49317E	STA $7E3149,X  ; To OBJ pal 0
C3/67B1:	E220    	SEP #$20       ; 8-bit A
C3/67B3:	FA      	PLX            ; ROM index
C3/67B4:	E8      	INX            ; ROM index +1
C3/67B5:	E8      	INX            ; ROM index +1
C3/67B6:	C8      	INY            ; RAM index +1
C3/67B7:	C8      	INY            ; RAM index +1
C3/67B8:	C6E3    	DEC $E3        ; One less color
C3/67BA:	D0E9    	BNE $67A5      ; Loop till last
C3/67BC:	E220    	SEP #$20       ; 8-bit A
C3/67BE:	60      	RTS

Draw options in actor naming menu
C3/67BF:	86EB    	STX $EB        ; Set dst LBs
C3/67C1:	A97E    	LDA #$7E       ; Bank: 7E
C3/67C3:	85ED    	STA $ED        ; Set dst HB
C3/67C5:	A400    	LDY $00        ; ROM index: 0
C3/67C7:	A90A    	LDA #$0A       ; Columns: 10
C3/67C9:	85E6    	STA $E6        ; Set counter
C3/67CB:	A600    	LDX $00        ; RAM index: 0
C3/67CD:	B7E7    	LDA [$E7],Y    ; Character
C3/67CF:	85E0    	STA $E0        ; Memorize it
C3/67D1:	5A      	PHY            ; Save ROM index

Fork: Character without diacritic
C3/67D2:	C953    	CMP #$53       ; Normal char?
C3/67D4:	9006    	BCC $67DC      ; Branch if not
C3/67D6:	A9FF    	LDA #$FF       ; Space char
C3/67D8:	85E1    	STA $E1        ; Set diacritic
C3/67DA:	8020    	BRA $67FC      ; Update tilemap

Fork: Character with handakuten (SFC)
C3/67DC:	C949    	CMP #$49       ; Bogus char?
C3/67DE:	900D    	BCC $67ED      ; Branch if not
C3/67E0:	A952    	LDA #$52       ; Mark: []
C3/67E2:	85E1    	STA $E1        ; Set diacritic
C3/67E4:	A5E0    	LDA $E0        ; Letter number
C3/67E6:	18      	CLC            ; Prepare ADC
C3/67E7:	6917    	ADC #$17       ; Get true one
C3/67E9:	85E0    	STA $E0        ; Save changes
C3/67EB:	800F    	BRA $67FC      ; Update tilemap

Fork: Character with dakuten (SFC)
C3/67ED:	C920    	CMP #$20       ; Roman range?
C3/67EF:	900B    	BCC $67FC      ; Branch if not
C3/67F1:	A951    	LDA #$51       ; Mark: ["]
C3/67F3:	85E1    	STA $E1        ; Set diacritic
C3/67F5:	A5E0    	LDA $E0        ; Letter number
C3/67F7:	18      	CLC            ; Prepare ADC
C3/67F8:	6940    	ADC #$40       ; Get true one
C3/67FA:	85E0    	STA $E0        ; Save changes

Fork: Add character to tilemap
C3/67FC:	9B      	TXY            ; Base RAM index
C3/67FD:	A5E1    	LDA $E1        ; Diacritic
C3/67FF:	97EB    	STA [$EB],Y    ; Add to tilemap
C3/6801:	C8      	INY            ; Index +1
C3/6802:	A529    	LDA $29        ; Palette, etc.
C3/6804:	97EB    	STA [$EB],Y    ; Set attributes
C3/6806:	C220    	REP #$20       ; 16-bit A
C3/6808:	8A      	TXA            ; Base RAM index
C3/6809:	18      	CLC            ; Prepare ADC
C3/680A:	694000  	ADC #$0040     ; Go 1 row down
C3/680D:	A8      	TAY            ; Index it
C3/680E:	E220    	SEP #$20       ; 8-bit A
C3/6810:	A5E0    	LDA $E0        ; Base character
C3/6812:	97EB    	STA [$EB],Y    ; Add to tilemap
C3/6814:	C8      	INY            ; Index +1
C3/6815:	A529    	LDA $29        ; Palette, etc.
C3/6817:	97EB    	STA [$EB],Y    ; Set attributes
C3/6819:	E8      	INX            ; RAM index +1
C3/681A:	E8      	INX            ; RAM index +1
C3/681B:	E8      	INX            ; RAM index +1
C3/681C:	E8      	INX            ; RAM index +1
C3/681D:	7A      	PLY            ; ROM index
C3/681E:	C8      	INY            ; ROM index +1
C3/681F:	A5E6    	LDA $E6        ; Columns left
C3/6821:	C906    	CMP #$06       ; At separator?
C3/6823:	D002    	BNE $6827      ; Branch if not
C3/6825:	E8      	INX            ; RAM index +1
C3/6826:	E8      	INX            ; RAM index +1
C3/6827:	C6E6    	DEC $E6        ; One less column
C3/6829:	D0A2    	BNE $67CD      ; Loop till last
C3/682B:	C220    	REP #$20       ; 16-bit A
C3/682D:	A5EB    	LDA $EB        ; Tilemap ptr
C3/682F:	18      	CLC            ; Prepare ADC
C3/6830:	698000  	ADC #$0080     ; +2 rows down
C3/6833:	85EB    	STA $EB        ; Save changes
C3/6835:	E220    	SEP #$20       ; 8-bit A
C3/6837:	C6E5    	DEC $E5        ; One less row
C3/6839:	D08C    	BNE $67C7      ; Loop till last
C3/683B:	60      	RTS

Set to condense text in actor naming menu
C3/683C:	A600    	LDX $00        ; Index: 0
C3/683E:	BF9668C3	LDA $C36896,X  ; BG1 V-Pan data
C3/6842:	9FC99B7E	STA $7E9BC9,X  ; Save in RAM
C3/6846:	E8      	INX            ; Index +1
C3/6847:	E00D00  	CPX #$000D     ; End of table?
C3/684A:	D0F2    	BNE $683E      ; Loop if not
C3/684C:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/684E:	8D5043  	STA $4350      ; Set CH5 mode
C3/6851:	A90E    	LDA #$0E       ; $210E
C3/6853:	8D5143  	STA $4351      ; To BG1 V-Scroll
C3/6856:	A0C99B  	LDY #$9BC9     ; 7E/9BC9
C3/6859:	8C5243  	STY $4352      ; Set CH5 src LBs
C3/685C:	A97E    	LDA #$7E       ; Bank: 7E
C3/685E:	8D5443  	STA $4354      ; Set CH5 src HB
C3/6861:	A97E    	LDA #$7E       ; ...
C3/6863:	8D5743  	STA $4357      ; Set indir HB
C3/6866:	A920    	LDA #$20       ; Channel: 5
C3/6868:	0443    	TSB $43        ; Queue HDMA-5
C3/686A:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/686C:	8D6043  	STA $4360      ; Set CH6 mode
C3/686F:	A90D    	LDA #$0D       ; $210D
C3/6871:	8D6143  	STA $4361      ; To BG1 H-Scroll
C3/6874:	A08968  	LDY #$6889     ; C3/6889
C3/6877:	8C6243  	STY $4362      ; Set CH6 src LBs
C3/687A:	A9C3    	LDA #$C3       ; Bank: C3
C3/687C:	8D6443  	STA $4364      ; Set CH6 src HB
C3/687F:	A9C3    	LDA #$C3       ; ...
C3/6881:	8D6743  	STA $4367      ; Set indir HB
C3/6884:	A940    	LDA #$40       ; Channel: 6
C3/6886:	0443    	TSB $43        ; Queue HDMA-6
C3/6888:	60      	RTS

BG1 H-Shift table for the above (merges tilemaps)
C3/6889:	47 0001 	; Title, name
C3/688C:	50 0000 	; Upper chars
C3/688F:	50 0000 	; Lower chars
C3/6892:	10 0001 	; Blank area
C3/6895:	00      	; End

BG1 V-Shift table for the above (condenses text)
C3/6896:	47 0000 	; Title, name
C3/6899:	50 D0FF 	; Upper chars
C3/689C:	50 D0FF 	; Lower chars
C3/689F:	10 0000 	; Blank area
C3/68A2:	00      	; End

Update arrow in actor naming menu
C3/68A3:	AA      	TAX            ; Index mode
C3/68A4:	7CA768  	JMP ($68A7,X)  ; Handle mode

Jump table for the above
C3/68A7:	AB68    	; Initialize arrow
C3/68A9:	CB68    	; Sustain arrow

Mode 0: Initialize arrow
C3/68AB:	A62D    	LDX $2D        ; Queue index
C3/68AD:	C220    	REP #$20       ; 16-bit A
C3/68AF:	A952B4  	LDA #$B452     ; Anim table ptr
C3/68B2:	9DC932  	STA $32C9,X    ; Set sprite's
C3/68B5:	A94000  	LDA #$0040     ; Y: 64
C3/68B8:	9D4A34  	STA $344A,X    ; Set sprite's
C3/68BB:	E220    	SEP #$20       ; 8-bit A
C3/68BD:	9ECB33  	STZ $33CB,X    ; No use...
C3/68C0:	A9C3    	LDA #$C3       ; Bank: C3
C3/68C2:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/68C5:	200612  	JSR $1206      ; Set pose timer
C3/68C8:	FE4936  	INC $3649,X    ; Mode +1

Mode 1: Sustain arrow
C3/68CB:	A42D    	LDY $2D        ; Queue index
C3/68CD:	7B      	TDC            ; Clear A
C3/68CE:	A528    	LDA $28        ; Arrow's slot
C3/68D0:	AA      	TAX            ; Index it
C3/68D1:	BFDD68C3	LDA $C368DD,X  ; X position
C3/68D5:	99CA33  	STA $33CA,Y    ; Set sprite's
C3/68D8:	202112  	JSR $1221      ; Define OAM
C3/68DB:	38      	SEC            ; Set to requeue
C3/68DC:	60      	RTS

Arrow's X positions in actor naming menu
C3/68DD:	78      	; Letter 1
C3/68DE:	80      	; Letter 2
C3/68DF:	88      	; Letter 3
C3/68E0:	90      	; Letter 4
C3/68E1:	98      	; Letter 5
C3/68E2:	A0      	; Letter 6

Positioned text, "Please enter a name."
C3/68E3:	1B41 8FA59E9AAC9EFF9EA7AD9EABFF9AFFA79AA69EC500

Reset menu or ending variables
C3/68FA:	22F3CDD4	JSL $D4CDF3    ; Reset many vars
C3/68FE:	200469  	JSR $6904      ; Reset BGs' X/Y
C3/6901:	4C96A7  	JMP $A796      ; Clear VWF GFX

Reset BG positions
C3/6904:	A400    	LDY $00        ; Clear Y
C3/6906:	8435    	STY $35        ; BG1 X-Loc: 0
C3/6908:	8439    	STY $39        ; BG2 X-Loc: 0
C3/690A:	843D    	STY $3D        ; BG3 X-Loc: 0
C3/690C:	8437    	STY $37        ; BG1 Y-Loc: 0
C3/690E:	843B    	STY $3B        ; BG2 Y-Loc: 0
C3/6910:	843F    	STY $3F        ; BG3 Y-Loc: 0
C3/6912:	8441    	STY $41        ; List V-Spd: 0
C3/6914:	60      	RTS

Get party info from SRAM block
C3/6915:	2200CAD4	JSL $D4CA00    ; Clear all info
C3/6919:	7B      	TDC            ; Clear A
C3/691A:	AA      	TAX            ; 1st: Terra
C3/691B:	9B      	TXY            ; ...
C3/691C:	BD5018  	LDA $1850,X    ; Party info
C3/691F:	2940    	AND #$40       ; Object's off?
C3/6921:	F01E    	BEQ $6941      ; Skip if so
C3/6923:	BD5018  	LDA $1850,X    ; Party info
C3/6926:	2907    	AND #$07       ; Get party
C3/6928:	CD6D1A  	CMP $1A6D      ; Active party?
C3/692B:	D014    	BNE $6941      ; Skip if not
C3/692D:	BD5018  	LDA $1850,X    ; Party info
C3/6930:	48      	PHA            ; Memorize it
C3/6931:	2918    	AND #$18       ; Roster slot
C3/6933:	85E0    	STA $E0        ; ...
C3/6935:	4A      	LSR A          ; Put in b2-b3
C3/6936:	4A      	LSR A          ; Put in b1-b2
C3/6937:	4A      	LSR A          ; Now 0-3
C3/6938:	A8      	TAY            ; Index it
C3/6939:	68      	PLA            ; Party info
C3/693A:	997500  	STA $0075,Y    ; Set member's
C3/693D:	8A      	TXA            ; Actor slot
C3/693E:	996900  	STA $0069,Y    ; Set member's
C3/6941:	E8      	INX            ; Actor slot +1
C3/6942:	E01000  	CPX #$0010     ; Done 16 chars?
C3/6945:	D0D5    	BNE $691C      ; Loop if not
C3/6947:	A400    	LDY $00        ; 1st: Member 1
C3/6949:	7B      	TDC            ; Clear A
C3/694A:	B96900  	LDA $0069,Y    ; Actor
C3/694D:	C9FF    	CMP #$FF       ; Empty slot?
C3/694F:	F011    	BEQ $6962      ; Skip if so
C3/6951:	0A      	ASL A          ; Double it
C3/6952:	AA      	TAX            ; Index it
C3/6953:	C220    	REP #$20       ; 16-bit A
C3/6955:	BF6969C3	LDA $C36969,X  ; Actor's address
C3/6959:	48      	PHA            ; Memorize it
C3/695A:	98      	TYA            ; Member slot
C3/695B:	0A      	ASL A          ; Double it
C3/695C:	AA      	TAX            ; Index it
C3/695D:	68      	PLA            ; SRAM address
C3/695E:	956D    	STA $6D,X      ; Set member's
C3/6960:	E220    	SEP #$20       ; 8-bit A
C3/6962:	C8      	INY            ; Member slot +1
C3/6963:	C00400  	CPY #$0004     ; Done 4 slots?
C3/6966:	D0E1    	BNE $6949      ; Loop if not
C3/6968:	60      	RTS

SRAM block addresses for actor data
C3/6969:	0016    	; 00: Terra
C3/696B:	2516    	; 01: Locke
C3/696D:	4A16    	; 02: Cyan
C3/696F:	6F16    	; 03: Shadow
C3/6971:	9416    	; 04: Edgar
C3/6973:	B916    	; 05: Sabin
C3/6975:	DE16    	; 06: Celes
C3/6977:	0317    	; 07: Strago
C3/6979:	2817    	; 08: Relm
C3/697B:	4D17    	; 09: Setzer
C3/697D:	7217    	; 0A: Mog
C3/697F:	9717    	; 0B: Gau
C3/6981:	BC17    	; 0C: Gogo
C3/6983:	E117    	; 0D: Umaro
C3/6985:	0618    	; 0E: Guest 1
C3/6987:	2B18    	; 0F: Guest 2

Copy party info to SRAM block
C3/6989:	7B      	TDC            ; Clear A
C3/698A:	AA      	TAX            ; 1st: Member 1
C3/698B:	A8      	TAY            ; ...
C3/698C:	B569    	LDA $69,X      ; Actor in slot
C3/698E:	3012    	BMI $69A2      ; Skip if nobody
C3/6990:	A8      	TAY            ; Index it
C3/6991:	B575    	LDA $75,X      ; Party info
C3/6993:	29E7    	AND #$E7       ; Clear roster slot
C3/6995:	85E0    	STA $E0        ; Memorize info
C3/6997:	7B      	TDC            ; ...
C3/6998:	8A      	TXA            ; Member slot
C3/6999:	0A      	ASL A          ; Put in b1-b2
C3/699A:	0A      	ASL A          ; Put in b2-b3
C3/699B:	0A      	ASL A          ; Put in b3-b4
C3/699C:	18      	CLC            ; ...
C3/699D:	65E0    	ADC $E0        ; Add saved info
C3/699F:	995018  	STA $1850,Y    ; Put in SRAM area
C3/69A2:	E8      	INX            ; Member slot +1
C3/69A3:	E00400  	CPX #$0004     ; Done 4 slots?
C3/69A6:	D0E4    	BNE $698C      ; Loop if not
C3/69A8:	60      	RTS

Memorize current party (useless)
C3/69A9:	C220    	REP #$20       ; 16-bit A
C3/69AB:	A569    	LDA $69        ; Members 1 and 2
C3/69AD:	8F89AA7E	STA $7EAA89    ; Memorize them
C3/69B1:	A56B    	LDA $6B        ; Members 3 and 4
C3/69B3:	8F8BAA7E	STA $7EAA8B    ; Memorize them
C3/69B7:	E220    	SEP #$20       ; 8-bit A
C3/69B9:	60      	RTS

Draw multiple strings using consecutive pointers
C3/69BA:	86F1    	STX $F1        ; Set ptrs loc
C3/69BC:	84EF    	STY $EF        ; Set counter
C3/69BE:	A9C3    	LDA #$C3       ; Bank: C3
C3/69C0:	85F3    	STA $F3        ; Set loc HB
C3/69C2:	A400    	LDY $00        ; Index: 0
C3/69C4:	C220    	REP #$20       ; 16-bit A
C3/69C6:	B7F1    	LDA [$F1],Y    ; Text pointer
C3/69C8:	85E7    	STA $E7        ; Set src LBs
C3/69CA:	5A      	PHY            ; Save index
C3/69CB:	E220    	SEP #$20       ; 8-bit A
C3/69CD:	A9C3    	LDA #$C3       ; Bank: C3
C3/69CF:	85E9    	STA $E9        ; Set src HB
C3/69D1:	20FF02  	JSR $02FF      ; Draw string
C3/69D4:	7A      	PLY            ; String index
C3/69D5:	C8      	INY            ; Index +1
C3/69D6:	C8      	INY            ; Index +1
C3/69D7:	C4EF    	CPY $EF        ; None left?
C3/69D9:	D0E9    	BNE $69C4      ; Loop if not
C3/69DB:	60      	RTS

Set Window 1 positions per scanline
C3/69DC:	A901    	LDA #$01       ; 2Rx1B to PPU
C3/69DE:	8D2043  	STA $4320      ; Set CH2 mode
C3/69E1:	A926    	LDA #$26       ; $2126, $2127
C3/69E3:	8D2143  	STA $4321      ; To Win 1 L+R
C3/69E6:	A0FB69  	LDY #$69FB     ; C3/69FB
C3/69E9:	8C2243  	STY $4322      ; Set src LBs
C3/69EC:	A9C3    	LDA #$C3       ; Bank: C3
C3/69EE:	8D2443  	STA $4324      ; Set src HB
C3/69F1:	A9C3    	LDA #$C3       ; ...
C3/69F3:	8D2743  	STA $4327      ; Set indir HB
C3/69F6:	A904    	LDA #$04       ; Channel: 2
C3/69F8:	0443    	TSB $43        ; Queue HDMA-2
C3/69FA:	60      	RTS

Window 1 positions per scanline
C3/69FB:	07 FF 00	; No range
C3/69FE:	78 08 F7	; 8, 247
C3/6A01:	58 08 F7	; 8, 247
C3/6A04:	08 FF 00	; No range
C3/6A06:	00      	; End

Set global Window 1 positions
C3/6A08:	A904    	LDA #$04       ; Channel: 2
C3/6A0A:	1443    	TRB $43        ; Halt Win1 HDMA
C3/6A0C:	9C2621  	STZ $2126      ; Win1-L: 0
C3/6A0F:	A9FF    	LDA #$FF       ; Win1-R: 255
C3/6A11:	8D2721  	STA $2127      ; Set register
C3/6A14:	60      	RTS

Clear BG1 tilemap A
C3/6A15:	A600    	LDX $00        ; 7E/3849
C3/6A17:	8035    	BRA $6A4E      ; Clear map

Clear BG1 tilemap B
C3/6A19:	A20008  	LDX #$0800     ; 7E/4049
C3/6A1C:	8030    	BRA $6A4E      ; Clear map

Clear BG1 tilemap C
C3/6A1E:	A20010  	LDX #$1000     ; 7E/4849
C3/6A21:	802B    	BRA $6A4E      ; Clear map

Clear BG1 tilemap D
C3/6A23:	A20018  	LDX #$1800     ; 7E/5049
C3/6A26:	8026    	BRA $6A4E      ; Clear map

Clear BG2 tilemap A
C3/6A28:	A20020  	LDX #$2000     ; 7E/5849
C3/6A2B:	8021    	BRA $6A4E      ; Clear map

Clear BG2 tilemap B
C3/6A2D:	A20028  	LDX #$2800     ; 7E/6049
C3/6A30:	801C    	BRA $6A4E      ; Clear map

Clear BG2 tilemap C
C3/6A32:	A20030  	LDX #$3000     ; 7E/6849
C3/6A35:	8017    	BRA $6A4E      ; Clear map

Clear BG2 tilemap D (unused)
C3/6A37:	A20038  	LDX #$3800     ; 7E/7049
C3/6A3A:	8012    	BRA $6A4E      ; Clear map

Clear BG3 tilemap A
C3/6A3C:	A20040  	LDX #$4000     ; 7E/7849
C3/6A3F:	800D    	BRA $6A4E      ; Clear map

Clear BG3 tilemap B
C3/6A41:	A20048  	LDX #$4800     ; 7E/8049
C3/6A44:	8008    	BRA $6A4E      ; Clear map

Clear BG3 tilemap C
C3/6A46:	A20050  	LDX #$5000     ; 7E/8849
C3/6A49:	8003    	BRA $6A4E      ; Clear map

Clear BG3 tilemap D
C3/6A4B:	A20058  	LDX #$5800     ; 7E/9049
C3/6A4E:	C220    	REP #$20       ; 16-bit A
C3/6A50:	7B      	TDC            ; Clear A
C3/6A51:	A00002  	LDY #$0200     ; Tiles: 1024
C3/6A54:	9F49387E	STA $7E3849,X  ; Clear tile
C3/6A58:	E8      	INX            ; Index +1
C3/6A59:	E8      	INX            ; Index +1
C3/6A5A:	9F49387E	STA $7E3849,X  ; Clear tile
C3/6A5E:	E8      	INX            ; Index +1
C3/6A5F:	E8      	INX            ; Index +1
C3/6A60:	88      	DEY            ; 2 less tiles
C3/6A61:	D0F1    	BNE $6A54      ; Loop till 0
C3/6A63:	E220    	SEP #$20       ; 8-bit A
C3/6A65:	60      	RTS

Load graphics, colors, enemy, and prize for Colosseum matchup
C3/6A66:	201070  	JSR $7010      ; ...
C3/6A69:	20136B  	JSR $6B13      ; BG3 font GFX
C3/6A6C:	20E86B  	JSR $6BE8      ; Font colors
C3/6A6F:	20096C  	JSR $6C09      ; ...
C3/6A72:	20676E  	JSR $6E67      ; Cursor/VS GFX
C3/6A75:	20C76C  	JSR $6CC7      ; Actor colors
C3/6A78:	20846C  	JSR $6C84      ; Cursor/VS colors
C3/6A7B:	20826E  	JSR $6E82      ; ...
C3/6A7E:	20E96C  	JSR $6CE9      ; Actor sprites
C3/6A81:	2046AF  	JSR $AF46      ; Prize/enemy data
C3/6A84:	4C4BB3  	JMP $B34B      ; Arena

Load non-skin graphics and colors for menu
C3/6A87:	7B      	TDC            ; Clear A
C3/6A88:	AD0002  	LDA $0200      ; Menu
C3/6A8B:	0A      	ASL A          ; Double it
C3/6A8C:	AA      	TAX            ; Index it
C3/6A8D:	7C906A  	JMP ($6A90,X)  ; Load data

Jump table for the above
C3/6A90:	E96A    	; Main menu
C3/6A92:	046B    	; Actor naming
C3/6A94:	E96A    	; Load menu
C3/6A96:	CE6A    	; Shop
C3/6A98:	B06A    	; Lineup
C3/6A9A:	B06A    	; Bogus...
C3/6A9C:	A46A    	; SwdTech naming
C3/6A9E:	E96A    	; Colosseum
C3/6AA0:	B06A    	; Final battle lineup
C3/6AA2:	B06A    	; Bogus...

Load graphics and colors for SwdTech naming menu (SFC)
C3/6AA4:	20376B  	JSR $6B37      ; BG1 font GFX
C3/6AA7:	20E86B  	JSR $6BE8      ; Font colors
C3/6AAA:	20676E  	JSR $6E67      ; Cursor/arrow GFX
C3/6AAD:	4C846C  	JMP $6C84      ; Their colors

Load graphics and colors for Lineup or final battle menu
C3/6AB0:	201070  	JSR $7010      ; Blank portrait
C3/6AB3:	20136B  	JSR $6B13      ; BG3 font GFX
C3/6AB6:	20376B  	JSR $6B37      ; BG1 font GFX
C3/6AB9:	20E86B  	JSR $6BE8      ; Font colors
C3/6ABC:	20096C  	JSR $6C09      ; Portrait colors...
C3/6ABF:	20676E  	JSR $6E67      ; Cursor/icon GFX
C3/6AC2:	20C76C  	JSR $6CC7      ; Actor colors
C3/6AC5:	20846C  	JSR $6C84      ; Cursor/icon pals
C3/6AC8:	20826E  	JSR $6E82      ; Portrait GFX...
C3/6ACB:	4CE96C  	JMP $6CE9      ; Actor sprites

Load graphics and colors for shop menu
C3/6ACE:	20136B  	JSR $6B13      ; BG3 font GFX
C3/6AD1:	20376B  	JSR $6B37      ; BG1 font GFX
C3/6AD4:	20E86B  	JSR $6BE8      ; Font colors
C3/6AD7:	20096C  	JSR $6C09      ; Portrait colors...
C3/6ADA:	20676E  	JSR $6E67      ; Cursor/icon GFX
C3/6ADD:	20C76C  	JSR $6CC7      ; Actor colors
C3/6AE0:	20846C  	JSR $6C84      ; Cursor/icon pals
C3/6AE3:	20826E  	JSR $6E82      ; Portrait GFX...
C3/6AE6:	4C796D  	JMP $6D79      ; Actor sprites

Load graphics and colors for Load, Main, or Colosseum menu
C3/6AE9:	20136B  	JSR $6B13      ; BG3 font GFX
C3/6AEC:	20376B  	JSR $6B37      ; BG1 font GFX
C3/6AEF:	20E86B  	JSR $6BE8      ; Font colors
C3/6AF2:	20676E  	JSR $6E67      ; Cursor/icon GFX
C3/6AF5:	20826E  	JSR $6E82      ; Portrait GFX
C3/6AF8:	20096C  	JSR $6C09      ; Portrait colors
C3/6AFB:	20E96C  	JSR $6CE9      ; Actor sprites
C3/6AFE:	20846C  	JSR $6C84      ; Cursor/icon pals
C3/6B01:	4C606C  	JMP $6C60      ; Grayscale pal

Load graphics and colors for actor naming menu
C3/6B04:	20136B  	JSR $6B13      ; Blank BG tile
C3/6B07:	20376B  	JSR $6B37      ; BG1 font GFX
C3/6B0A:	20E86B  	JSR $6BE8      ; Font colors
C3/6B0D:	20676E  	JSR $6E67      ; Cursor GFX
C3/6B10:	4C846C  	JMP $6C84      ; Cursor colors

Upload BG3 font graphics and erase VWF description
C3/6B13:	C220    	REP #$20       ; 16-bit A
C3/6B15:	A00060  	LDY #$6000     ; $6000
C3/6B18:	8C1621  	STY $2116      ; Set VRAM ptr
C3/6B1B:	A600    	LDX $00        ; Index: 0
C3/6B1D:	BFC07FC4	LDA $C47FC0,X  ; Font graphics
C3/6B21:	8D1821  	STA $2118      ; Save in VRAM
C3/6B24:	E8      	INX            ; Index +1
C3/6B25:	E8      	INX            ; Index +1
C3/6B26:	E00010  	CPX #$1000     ; 256th tile?
C3/6B29:	D0F2    	BNE $6B1D      ; Loop if not
C3/6B2B:	8D1821  	STA $2118      ; Clear desc GFX
C3/6B2E:	E8      	INX            ; Index +1
C3/6B2F:	E00014  	CPX #$1400     ; 128th tile?
C3/6B32:	D0F7    	BNE $6B2B      ; Loop if not
C3/6B34:	E220    	SEP #$20       ; 8-bit A
C3/6B36:	60      	RTS

Upload BG1 font graphics
C3/6B37:	A00050  	LDY #$5000     ; $5000
C3/6B3A:	8C1621  	STY $2116      ; Set VRAM ptr
C3/6B3D:	C220    	REP #$20       ; 16-bit A
C3/6B3F:	7B      	TDC            ; Clear A
C3/6B40:	AA      	TAX            ; Index: 0
C3/6B41:	A00800  	LDY #$0008     ; 8-px rows: 8
C3/6B44:	BF9C6BC3	LDA $C36B9C,X  ; Square GFX
C3/6B48:	8D1821  	STA $2118      ; Save in VRAM
C3/6B4B:	88      	DEY            ; One less row
C3/6B4C:	D0F6    	BNE $6B44      ; Loop till last
C3/6B4E:	E8      	INX            ; Index +1
C3/6B4F:	E8      	INX            ; Index +1
C3/6B50:	E02000  	CPX #$0020     ; Done 8 tiles?
C3/6B53:	D0EC    	BNE $6B41      ; Loop if not
C3/6B55:	A600    	LDX $00        ; Index: 0
C3/6B57:	A00800  	LDY #$0008     ; 8-px rows: 8
C3/6B5A:	BF4080C4	LDA $C48040,X  ; Font GFX row
C3/6B5E:	8D1821  	STA $2118      ; Save in VRAM
C3/6B61:	E8      	INX            ; Index +1
C3/6B62:	E8      	INX            ; Index +1
C3/6B63:	88      	DEY            ; One less row
C3/6B64:	D0F4    	BNE $6B5A      ; Loop till last
C3/6B66:	9C1821  	STZ $2118      ; Planes 1C, 1D
C3/6B69:	9C1821  	STZ $2118      ; Planes 2C, 2D
C3/6B6C:	9C1821  	STZ $2118      ; Planes 3C, 3D
C3/6B6F:	9C1821  	STZ $2118      ; Planes 4C, 4D
C3/6B72:	9C1821  	STZ $2118      ; Planes 5C, 5D
C3/6B75:	9C1821  	STZ $2118      ; Planes 6C, 6D
C3/6B78:	9C1821  	STZ $2118      ; Planes 7C, 7D
C3/6B7B:	9C1821  	STZ $2118      ; Planes 8C, 8D
C3/6B7E:	E0800F  	CPX #$0F80     ; 248th tile?
C3/6B81:	D0D4    	BNE $6B57      ; Loop if not
C3/6B83:	A00078  	LDY #$7800     ; $7800
C3/6B86:	8C1621  	STY $2116      ; Set VRAM ptr
C3/6B89:	A600    	LDX $00        ; Index: 0
C3/6B8B:	BF0000ED	LDA $ED0000,X  ; Skin GFX...
C3/6B8F:	8D1821  	STA $2118      ; Save in VRAM
C3/6B92:	E8      	INX            ; Index +1
C3/6B93:	E8      	INX            ; Index +1
C3/6B94:	E00010  	CPX #$1000     ; Done 8 skins?
C3/6B97:	D0F2    	BNE $6B8B      ; Loop if not
C3/6B99:	E220    	SEP #$20       ; 8-bit A
C3/6B9B:	60      	RTS

Square BG1 tiles, encoded as a single row
C3/6B9C:	0000 0000	; Blank tile
C3/6BA0:	FF00 0000	; Config: Palette color 1
C3/6BA4:	00FF 0000	; Config: Palette color 2
C3/6BA8:	FFFF 0000	; Config: Palette color 3
C3/6BAC:	0000 FF00	; Config: Palette color 4
C3/6BB0:	FF00 FF00	; Config: Palette color 5
C3/6BB4:	00FF FF00	; Config: Palette color 6
C3/6BB8:	FFFF FF00	; Config: Palette color 7

Reset all skin colors
C3/6BBC:	A20800  	LDX #$0008     ; Skins left: 8
C3/6BBF:	86E7    	STX $E7        ; Set counter
C3/6BC1:	A20000  	LDX #$0000     ; ROM index: 0
C3/6BC4:	9B      	TXY            ; RAM index: 0
C3/6BC5:	C220    	REP #$20       ; 16-bit A
C3/6BC7:	A90700  	LDA #$0007     ; Colors left: 7
C3/6BCA:	85E9    	STA $E9        ; Set counter
C3/6BCC:	BF021CED	LDA $ED1C02,X  ; Default color
C3/6BD0:	99571D  	STA $1D57,Y    ; Save in options
C3/6BD3:	E8      	INX            ; ROM index +1
C3/6BD4:	E8      	INX            ; ROM index +1
C3/6BD5:	C8      	INY            ; RAM index +1
C3/6BD6:	C8      	INY            ; RAM index +1
C3/6BD7:	C6E9    	DEC $E9        ; One less color
C3/6BD9:	D0F1    	BNE $6BCC      ; Loop till last
C3/6BDB:	8A      	TXA            ; ROM index
C3/6BDC:	18      	CLC            ; Prepare ADC
C3/6BDD:	691200  	ADC #$0012     ; Reach next skin
C3/6BE0:	AA      	TAX            ; Reindex it
C3/6BE1:	C6E7    	DEC $E7        ; One less skin
C3/6BE3:	D0E2    	BNE $6BC7      ; Loop till last
C3/6BE5:	E220    	SEP #$20       ; 8-bit A
C3/6BE7:	60      	RTS

Load font and black background's colors
C3/6BE8:	A600    	LDX $00        ; Color index: 0
C3/6BEA:	8A      	TXA            ; CGRAM: $0000
C3/6BEB:	8D2121  	STA $2121      ; To BG color 0
C3/6BEE:	C220    	REP #$20       ; 16-bit A
C3/6BF0:	BF00E8D8	LDA $D8E800,X  ; BG color
C3/6BF4:	9F49307E	STA $7E3049,X  ; Save in RAM
C3/6BF8:	E220    	SEP #$20       ; 8-bit A
C3/6BFA:	8D2221  	STA $2122      ; Put LB in CGRAM
C3/6BFD:	EB      	XBA            ; Switch to HB
C3/6BFE:	8D2221  	STA $2122      ; Put HB in CGRAM
C3/6C01:	E8      	INX            ; Index +1
C3/6C02:	E8      	INX            ; Index +1
C3/6C03:	E0A000  	CPX #$00A0     ; Done 80 colors?
C3/6C06:	D0E6    	BNE $6BEE      ; Loop if not
C3/6C08:	60      	RTS

Load portrait colors for entire party
C3/6C09:	A600    	LDX $00        ; Member index: 0
C3/6C0B:	9B      	TXY            ; Dest index: 0
C3/6C0C:	C220    	REP #$20       ; 16-bit A
C3/6C0E:	B56D    	LDA $6D,X      ; Actor data index
C3/6C10:	DA      	PHX            ; Save member index
C3/6C11:	5A      	PHY            ; Save dest index
C3/6C12:	A8      	TAY            ; Actor data index
C3/6C13:	7B      	TDC            ; Clear A
C3/6C14:	E220    	SEP #$20       ; 8-bit A
C3/6C16:	A910    	LDA #$10       ; Colors: 16
C3/6C18:	85E3    	STA $E3        ; Set counter
C3/6C1A:	B91400  	LDA $0014,Y    ; Status
C3/6C1D:	2920    	AND #$20       ; Imp?
C3/6C1F:	F004    	BEQ $6C25      ; Branch if not
C3/6C21:	A90F    	LDA #$0F       ; Use Imp data
C3/6C23:	800B    	BRA $6C30      ; Ignore actor
C3/6C25:	7B      	TDC            ; ...
C3/6C26:	B90000  	LDA $0000,Y    ; Actor
C3/6C29:	C901    	CMP #$01       ; Locke?
C3/6C2B:	F003    	BEQ $6C30      ; Branch if so
C3/6C2D:	B90100  	LDA $0001,Y    ; Graphics set
C3/6C30:	AA      	TAX            ; Index it
C3/6C31:	BF006FC3	LDA $C36F00,X  ; Palette number
C3/6C35:	C220    	REP #$20       ; 16-bit A
C3/6C37:	0A      	ASL A          ; x2
C3/6C38:	0A      	ASL A          ; x4
C3/6C39:	0A      	ASL A          ; x8
C3/6C3A:	0A      	ASL A          ; x16
C3/6C3B:	0A      	ASL A          ; x32
C3/6C3C:	AA      	TAX            ; Index it
C3/6C3D:	7A      	PLY            ; RAM index
C3/6C3E:	C220    	REP #$20       ; 16-bit A
C3/6C40:	DA      	PHX            ; Save ROM index
C3/6C41:	BF6058ED	LDA $ED5860,X  ; Portrait color
C3/6C45:	BB      	TYX            ; RAM index
C3/6C46:	9F49317E	STA $7E3149,X  ; Set color
C3/6C4A:	E220    	SEP #$20       ; 8-bit A
C3/6C4C:	FA      	PLX            ; ROM index
C3/6C4D:	E8      	INX            ; ROM index +1
C3/6C4E:	E8      	INX            ; ROM index +1
C3/6C4F:	C8      	INY            ; RAM index +1
C3/6C50:	C8      	INY            ; RAM index +1
C3/6C51:	C6E3    	DEC $E3        ; One less color
C3/6C53:	D0E9    	BNE $6C3E      ; Loop till last
C3/6C55:	FA      	PLX            ; Member index
C3/6C56:	E8      	INX            ; Member index +1
C3/6C57:	E8      	INX            ; Member index +1
C3/6C58:	E00800  	CPX #$0008     ; Done 4 members?
C3/6C5B:	D0AF    	BNE $6C0C      ; Loop if not
C3/6C5D:	E220    	SEP #$20       ; 8-bit A
C3/6C5F:	60      	RTS

Load grayscale actor palette
C3/6C60:	A990    	LDA #$90       ; Object color 16
C3/6C62:	8D2121  	STA $2121      ; CGRAM: $0120
C3/6C65:	A600    	LDX $00        ; Color index: 0
C3/6C67:	C220    	REP #$20       ; 16-bit A
C3/6C69:	BFA0E8D8	LDA $D8E8A0,X  ; Grayscale color
C3/6C6D:	9F69317E	STA $7E3169,X  ; To OBJ pal 1
C3/6C71:	E220    	SEP #$20       ; 8-bit A
C3/6C73:	8D2221  	STA $2122      ; Put LB in CGRAM
C3/6C76:	EB      	XBA            ; Switch to HB
C3/6C77:	8D2221  	STA $2122      ; Put HB in CGRAM
C3/6C7A:	C8      	INY            ; ...
C3/6C7B:	C8      	INY            ; ...
C3/6C7C:	E8      	INX            ; Index +1
C3/6C7D:	E8      	INX            ; Index +1
C3/6C7E:	E02000  	CPX #$0020     ; Done 16 colors?
C3/6C81:	D0E4    	BNE $6C67      ; Loop if not
C3/6C83:	60      	RTS

Load cursor, arrow, and icon colors
C3/6C84:	A600    	LDX $00        ; Color index: 0
C3/6C86:	A9EC    	LDA #$EC       ; Object color 108
C3/6C88:	8D2121  	STA $2121      ; CGRAM: $01D8
C3/6C8B:	C220    	REP #$20       ; 16-bit A
C3/6C8D:	BFC0E8D8	LDA $D8E8C0,X  ; Status icon color
C3/6C91:	9F21327E	STA $7E3221,X  ; Save in RAM
C3/6C95:	E220    	SEP #$20       ; 8-bit A
C3/6C97:	8D2221  	STA $2122      ; Put LB in CGRAM
C3/6C9A:	EB      	XBA            ; Switch to HB
C3/6C9B:	8D2221  	STA $2122      ; Put HB in CGRAM
C3/6C9E:	E8      	INX            ; Index +1
C3/6C9F:	E8      	INX            ; Index +1
C3/6CA0:	E00800  	CPX #$0008     ; Done 4 colors?
C3/6CA3:	D0E6    	BNE $6C8B      ; Loop if not
C3/6CA5:	A600    	LDX $00        ; Color index: 0
C3/6CA7:	A9FC    	LDA #$FC       ; Object color 124
C3/6CA9:	8D2121  	STA $2121      ; CGRAM: $01F8
C3/6CAC:	C220    	REP #$20       ; 16-bit A
C3/6CAE:	BFB8E8D8	LDA $D8E8B8,X  ; Cursor, etc. color
C3/6CB2:	9F41327E	STA $7E3241,X  ; Save in RAM
C3/6CB6:	E220    	SEP #$20       ; 8-bit A
C3/6CB8:	8D2221  	STA $2122      ; Put LB in CGRAM
C3/6CBB:	EB      	XBA            ; Switch to HB
C3/6CBC:	8D2221  	STA $2122      ; Put HB in CGRAM
C3/6CBF:	E8      	INX            ; Index +1
C3/6CC0:	E8      	INX            ; Index +1
C3/6CC1:	E00800  	CPX #$0008     ; Done 4 colors?
C3/6CC4:	D0E6    	BNE $6CAC      ; Loop if not
C3/6CC6:	60      	RTS

Load actor sprite palettes
C3/6CC7:	A600    	LDX $00        ; Color index: 0
C3/6CC9:	A9A0    	LDA #$A0       ; Object color 32
C3/6CCB:	8D2121  	STA $2121      ; CGRAM: $0140
C3/6CCE:	C220    	REP #$20       ; 16-bit A
C3/6CD0:	BF0063ED	LDA $ED6300,X  ; Sprite color
C3/6CD4:	9F89317E	STA $7E3189,X  ; Save in RAM
C3/6CD8:	E220    	SEP #$20       ; 8-bit A
C3/6CDA:	8D2221  	STA $2122      ; Put LB in CGRAM
C3/6CDD:	EB      	XBA            ; Switch to HB
C3/6CDE:	8D2221  	STA $2122      ; Put HB in CGRAM
C3/6CE1:	E8      	INX            ; Index +1
C3/6CE2:	E8      	INX            ; Index +1
C3/6CE3:	E0C000  	CPX #$00C0     ; Done 96 colors?
C3/6CE6:	D0E6    	BNE $6CCE      ; Loop if not
C3/6CE8:	60      	RTS

Upload actor sprite graphics (one pose)
C3/6CE9:	7B      	TDC            ; Clear A
C3/6CEA:	AA      	TAX            ; OBJ index: 0
C3/6CEB:	DA      	PHX            ; Save index
C3/6CEC:	C220    	REP #$20       ; 16-bit A
C3/6CEE:	BFE5F8CF	LDA $CFF8E5,X  ; VRAM pointer
C3/6CF2:	85F3    	STA $F3        ; Memorize it
C3/6CF4:	8A      	TXA            ; Sprite index
C3/6CF5:	0A      	ASL A          ; Double it
C3/6CF6:	AA      	TAX            ; Index it
C3/6CF7:	BF13F9CF	LDA $CFF913,X  ; GFX adr LBs
C3/6CFB:	85E7    	STA $E7        ; Memorize it
C3/6CFD:	BF11F9CF	LDA $CFF911,X  ; GFX adr HBs
C3/6D01:	85E9    	STA $E9        ; Memorize it
C3/6D03:	A600    	LDX $00        ; Ptr index: 0

Fork: Head and torso
C3/6D05:	BFDFF8CF	LDA $CFF8DF,X  ; Tile rel ptr
C3/6D09:	85EF    	STA $EF        ; Memorize it
C3/6D0B:	20446D  	JSR $6D44      ; Load 2 tiles
C3/6D0E:	A5F3    	LDA $F3        ; VRAM pointer
C3/6D10:	18      	CLC            ; Prepare ADC
C3/6D11:	690001  	ADC #$0100     ; Go 1 row down
C3/6D14:	85F3    	STA $F3        ; Save changes
C3/6D16:	E8      	INX            ; Ptr index +1
C3/6D17:	E8      	INX            ; Ptr index +1
C3/6D18:	E00400  	CPX #$0004     ; Done 2 rows?
C3/6D1B:	D0E8    	BNE $6D05      ; Loop if not

Fork: Legs
C3/6D1D:	A5F3    	LDA $F3        ; VRAM pointer
C3/6D1F:	38      	SEC            ; Prepare SBC
C3/6D20:	E9E001  	SBC #$01E0     ; Row -2, col +2
C3/6D23:	85F3    	STA $F3        ; Save changes
C3/6D25:	BFDFF8CF	LDA $CFF8DF,X  ; Tile rel ptr
C3/6D29:	85EF    	STA $EF        ; Memorize it
C3/6D2B:	20446D  	JSR $6D44      ; Load leg GFX

Fork: Blank row
C3/6D2E:	A5F3    	LDA $F3        ; VRAM pointer
C3/6D30:	18      	CLC            ; Prepare ADC
C3/6D31:	690001  	ADC #$0100     ; Go 1 row down
C3/6D34:	85F3    	STA $F3        ; Save changes
C3/6D36:	20676D  	JSR $6D67      ; Blank 4th row

Fork: Handle next sprite
C3/6D39:	FA      	PLX            ; Sprite index
C3/6D3A:	E8      	INX            ; Index +1
C3/6D3B:	E8      	INX            ; Index +1
C3/6D3C:	E02C00  	CPX #$002C     ; 22th sprite?
C3/6D3F:	D0AA    	BNE $6CEB      ; Loop if not
C3/6D41:	E220    	SEP #$20       ; 8-bit A
C3/6D43:	60      	RTS

Upload both tiles in current row of actor sprite
C3/6D44:	18      	CLC            ; Prepare ADC
C3/6D45:	A5EF    	LDA $EF        ; Tile rel pointer
C3/6D47:	65E7    	ADC $E7        ; Add base adr LBs
C3/6D49:	85EB    	STA $EB        ; Set src LBs
C3/6D4B:	7B      	TDC            ; Zero A
C3/6D4C:	65E9    	ADC $E9        ; Add adr HBs + C
C3/6D4E:	85ED    	STA $ED        ; Set source HBs
C3/6D50:	A4F3    	LDY $F3        ; VRAM pointer
C3/6D52:	8C1621  	STY $2116      ; Set destination
C3/6D55:	4C586D  	JMP $6D58      ; ...
C3/6D58:	A400    	LDY $00        ; Index: 0
C3/6D5A:	B7EB    	LDA [$EB],Y    ; Tile graphics
C3/6D5C:	8D1821  	STA $2118      ; Save in VRAM
C3/6D5F:	C8      	INY            ; Index +1
C3/6D60:	C8      	INY            ; Index +1
C3/6D61:	C04000  	CPY #$0040     ; Done 2 tiles?
C3/6D64:	D0F4    	BNE $6D5A      ; Loop if not
C3/6D66:	60      	RTS

Blank both tiles under actor's feet
C3/6D67:	A4F3    	LDY $F3        ; VRAM pointer
C3/6D69:	8C1621  	STY $2116      ; Set destination
C3/6D6C:	A92000  	LDA #$0020     ; Tiles: 2
C3/6D6F:	85E7    	STA $E7        ; Set counter
C3/6D71:	9C1821  	STZ $2118      ; 8 px, 2 planes
C3/6D74:	C6E7    	DEC $E7        ; Counter -1
C3/6D76:	D0F9    	BNE $6D71      ; Loop till zero
C3/6D78:	60      	RTS

Upload actor sprites for shop
C3/6D79:	A00030  	LDY #$3000     ; $3000
C3/6D7C:	8C1621  	STY $2116      ; Set VRAM ptr
C3/6D7F:	64E3    	STZ $E3        ; Actor slot: 1

Fork: Load both poses for two actors
C3/6D81:	A400    	LDY $00        ; Tile slot: 1
C3/6D83:	E220    	SEP #$20       ; 8-bit A
C3/6D85:	7B      	TDC            ; Clear A
C3/6D86:	BB      	TYX            ; Tile slot
C3/6D87:	BF076EC3	LDA $C36E07,X  ; GFX ptr index
C3/6D8B:	0A      	ASL A          ; Double it
C3/6D8C:	AA      	TAX            ; Index it
C3/6D8D:	C220    	REP #$20       ; 16-bit A
C3/6D8F:	BF276EC3	LDA $C36E27,X  ; Tile's GFX ptr
C3/6D93:	C9FFFF  	CMP #$FFFF     ; Blank tile?
C3/6D96:	F052    	BEQ $6DEA      ; Blank if so
C3/6D98:	48      	PHA            ; Save pointer
C3/6D99:	A9A016  	LDA #$16A0     ; GFX struct size
C3/6D9C:	E220    	SEP #$20       ; 8-bit A
C3/6D9E:	8D1B21  	STA $211B      ; Set matrix A LB
C3/6DA1:	EB      	XBA            ; Struct size HB
C3/6DA2:	8D1B21  	STA $211B      ; Set matrix A HB
C3/6DA5:	A5E3    	LDA $E3        ; Actor A's slot
C3/6DA7:	8D1C21  	STA $211C      ; Set matrix B
C3/6DAA:	8D1C21  	STA $211C      ; ...
C3/6DAD:	C220    	REP #$20       ; 16-bit A
C3/6DAF:	68      	PLA            ; Tile GFX ptr
C3/6DB0:	18      	CLC            ; Prepare ADC
C3/6DB1:	6D3421  	ADC $2134      ; Add product LBs
C3/6DB4:	85EB    	STA $EB        ; Set source LBs
C3/6DB6:	E220    	SEP #$20       ; 8-bit A
C3/6DB8:	AD3621  	LDA $2136      ; Product HB
C3/6DBB:	69D5    	ADC #$D5       ; Add base bank
C3/6DBD:	85ED    	STA $ED        ; Set source HB
C3/6DBF:	C221    	REP #$21       ; ...
C3/6DC1:	A5EB    	LDA $EB        ; ...
C3/6DC3:	690000  	ADC #$0000     ; ...
C3/6DC6:	85EB    	STA $EB        ; ...
C3/6DC8:	E220    	SEP #$20       ; ...
C3/6DCA:	A5ED    	LDA $ED        ; ...
C3/6DCC:	6900    	ADC #$00       ; ...
C3/6DCE:	85ED    	STA $ED        ; ...
C3/6DD0:	C220    	REP #$20       ; 16-bit A
C3/6DD2:	5A      	PHY            ; Save tile slot
C3/6DD3:	20F86D  	JSR $6DF8      ; Load tile's GFX
C3/6DD6:	7A      	PLY            ; Tile slot
C3/6DD7:	C8      	INY            ; Tile slot +1
C3/6DD8:	C02000  	CPY #$0020     ; Done 32 tiles?
C3/6DDB:	D0A6    	BNE $6D83      ; Loop if not

Fork: Handle next two actors
C3/6DDD:	E220    	SEP #$20       ; 8-bit A
C3/6DDF:	E6E3    	INC $E3        ; Actor slot +1
C3/6DE1:	E6E3    	INC $E3        ; Actor slot +1
C3/6DE3:	A5E3    	LDA $E3        ; Actor slot
C3/6DE5:	C910    	CMP #$10       ; Handled 16?
C3/6DE7:	D098    	BNE $6D81      ; Loop if not
C3/6DE9:	60      	RTS

Fork: Create a blank tile
C3/6DEA:	A91000  	LDA #$0010     ; Rows: 8
C3/6DED:	85E7    	STA $E7        ; Set counter
C3/6DEF:	9C1821  	STZ $2118      ; 8 px, 2 planes
C3/6DF2:	C6E7    	DEC $E7        ; Counter -1
C3/6DF4:	D0F9    	BNE $6DEF      ; Loop till zero
C3/6DF6:	80DF    	BRA $6DD7      ; Do next tile

Upload current actor sprite tile for shop
C3/6DF8:	A400    	LDY $00        ; Index: 0
C3/6DFA:	B7EB    	LDA [$EB],Y    ; 8 px, 2 planes
C3/6DFC:	8D1821  	STA $2118      ; Save in VRAM
C3/6DFF:	C8      	INY            ; Index +1
C3/6E00:	C8      	INY            ; Index +1
C3/6E01:	C02000  	CPY #$0020     ; Done 8 rows?
C3/6E04:	D0F4    	BNE $6DFA      ; Loop if not
C3/6E06:	60      	RTS

Indices for loading tiles from two shop actors
C3/6E07:	00      	; Actor1 X1,Y1 (hands down)
C3/6E08:	01      	; Actor1 X1,Y2 (hands down)
C3/6E09:	04      	; Actor1 X3,Y1 (hands down)
C3/6E0A:	05      	; Actor1 X3,Y2 (hands down)
C3/6E0B:	08      	; Actor1 X1,Y1 (hands up)
C3/6E0C:	09      	; Actor1 X1,Y2 (hands up)
C3/6E0D:	0C      	; Actor1 X3,Y1 (hands up)
C3/6E0E:	0D      	; Actor1 X3,Y2 (hands up)
C3/6E0F:	10      	; Actor2 X1,Y1 (hands down)
C3/6E10:	11      	; Actor2 X1,Y2 (hands down)
C3/6E11:	14      	; Actor2 X3,Y1 (hands down)
C3/6E12:	15      	; Actor2 X3,Y2 (hands down)
C3/6E13:	18      	; Actor2 X1,Y1 (hands up)
C3/6E14:	19      	; Actor2 X1,Y2 (hands up)
C3/6E15:	1C      	; Actor2 X3,Y1 (hands up)
C3/6E16:	1D      	; Actor2 X3,Y2 (hands up)
C3/6E17:	02      	; Actor1 X2,Y1 (hands down)
C3/6E18:	03      	; Actor1 X2,Y2 (hands down)
C3/6E19:	06      	; Actor1 X4,Y1 (hands down)
C3/6E1A:	07      	; Actor1 X4,Y2 (hands down)
C3/6E1B:	0A      	; Actor1 X2,Y1 (hands up)
C3/6E1C:	0B      	; Actor1 X2,Y2 (hands up)
C3/6E1D:	0E      	; Actor1 X4,Y1 (hands up)
C3/6E1E:	0F      	; Actor1 X4,Y2 (hands up)
C3/6E1F:	12      	; Actor2 X2,Y1 (hands down)
C3/6E20:	13      	; Actor2 X2,Y2 (hands down)
C3/6E21:	16      	; Actor2 X4,Y1 (hands down)
C3/6E22:	17      	; Actor2 X4,Y2 (hands down)
C3/6E23:	1A      	; Actor2 X2,Y1 (hands up)
C3/6E24:	1B      	; Actor2 X2,Y2 (hands up)
C3/6E25:	1E      	; Actor2 X4,Y1 (hands up)
C3/6E26:	1F      	; Actor2 X4,Y2 (hands up)

Tile graphics pointers for odd-numbered shop actors
C3/6E27:	C003    	; 1,1 (hands down)
C3/6E29:	E003    	; 1,2 (hands down)
C3/6E2B:	0005    	; 2,1 (hands down)
C3/6E2D:	2005    	; 2,2 (hands down)
C3/6E2F:	4005    	; 3,1 (hands down)
C3/6E31:	6005    	; 3,2 (hands down)
C3/6E33:	FFFF    	; 4,1 (hands down)
C3/6E35:	FFFF    	; 4,2 (hands down)
C3/6E37:	C003    	; 1,1 (hands up)
C3/6E39:	6006    	; 1,2 (hands up)
C3/6E3B:	8006    	; 2,1 (hands up)
C3/6E3D:	A006    	; 2,2 (hands up)
C3/6E3F:	C006    	; 3,1 (hands up)
C3/6E41:	E006    	; 3,2 (hands up)
C3/6E43:	FFFF    	; 4,1 (hands up)
C3/6E45:	FFFF    	; 4,2 (hands up)

Tile graphics pointers for even-numbered shop actors
C3/6E47:	601A    	; 1,1 (hands down)
C3/6E49:	801A    	; 1,2 (hands down)
C3/6E4B:	A01B    	; 2,1 (hands down)
C3/6E4D:	C01B    	; 2,2 (hands down)
C3/6E4F:	E01B    	; 3,1 (hands down)
C3/6E51:	001C    	; 3,2 (hands down)
C3/6E53:	FFFF    	; 4,1 (hands down)
C3/6E55:	FFFF    	; 4,2 (hands down)
C3/6E57:	601A    	; 1,1 (hands up)
C3/6E59:	001D    	; 1,2 (hands up)
C3/6E5B:	201D    	; 2,1 (hands up)
C3/6E5D:	401D    	; 2,2 (hands up)
C3/6E5F:	601D    	; 3,1 (hands up)
C3/6E61:	801D    	; 3,2 (hands up)
C3/6E63:	FFFF    	; 4,1 (hands up)
C3/6E65:	FFFF    	; 4,2 (hands up)

Upload cursor, arrow, and icon graphics (plus excess data)
C3/6E67:	C220    	REP #$20       ; 16-bit A
C3/6E69:	A00020  	LDY #$2000     ; $2000
C3/6E6C:	8C1621  	STY $2116      ; Set VRAM ptr
C3/6E6F:	A600    	LDX $00        ; Index: 0
C3/6E71:	BFC05AED	LDA $ED5AC0,X  ; 8 px, 2 planes
C3/6E75:	8D1821  	STA $2118      ; Save in VRAM
C3/6E78:	E8      	INX            ; Index +1
C3/6E79:	E8      	INX            ; Index +1
C3/6E7A:	E00014  	CPX #$1400     ; At ED/6EC0?
C3/6E7D:	D0F2    	BNE $6E71      ; Loop if not
C3/6E7F:	E220    	SEP #$20       ; 8-bit A
C3/6E81:	60      	RTS

Upload each member's portrait
C3/6E82:	A600    	LDX $00        ; 1st: Member 1
C3/6E84:	C220    	REP #$20       ; 16-bit A
C3/6E86:	BF516FC3	LDA $C36F51,X  ; VRAM pointer
C3/6E8A:	8D1621  	STA $2116      ; Set destination
C3/6E8D:	B46D    	LDY $6D,X      ; Actor's address
C3/6E8F:	DA      	PHX            ; Save mbr index
C3/6E90:	7B      	TDC            ; Clear A
C3/6E91:	E220    	SEP #$20       ; 8-bit A
C3/6E93:	B91400  	LDA $0014,Y    ; Status
C3/6E96:	2920    	AND #$20       ; Imp?
C3/6E98:	F004    	BEQ $6E9E      ; Branch if not
C3/6E9A:	A90F    	LDA #$0F       ; Use Imp image
C3/6E9C:	800A    	BRA $6EA8      ; Ignore actor
C3/6E9E:	B90000  	LDA $0000,Y    ; Actor
C3/6EA1:	C901    	CMP #$01       ; Locke?
C3/6EA3:	F003    	BEQ $6EA8      ; Branch if so
C3/6EA5:	B90100  	LDA $0001,Y    ; Graphics set
C3/6EA8:	C220    	REP #$20       ; 16-bit A
C3/6EAA:	0A      	ASL A          ; Double it
C3/6EAB:	AA      	TAX            ; Index it
C3/6EAC:	BF1B6FC3	LDA $C36F1B,X  ; GFX pointer
C3/6EB0:	AA      	TAX            ; Index it
C3/6EB1:	200070  	JSR $7000      ; Upload portrait
C3/6EB4:	FA      	PLX            ; Member index
C3/6EB5:	E8      	INX            ; Member index +1
C3/6EB6:	E8      	INX            ; Member index +1
C3/6EB7:	E00800  	CPX #$0008     ; Done 4 members?
C3/6EBA:	D0C8    	BNE $6E84      ; Loop if not
C3/6EBC:	E220    	SEP #$20       ; 8-bit A
C3/6EBE:	60      	RTS

Set to upload healed member's portrait
C3/6EBF:	A9ED    	LDA #$ED       ; Bank: ED
C3/6EC1:	851F    	STA $1F        ; Set src HB
C3/6EC3:	A02003  	LDY #$0320     ; Bytes: 800
C3/6EC6:	8419    	STY $19        ; Set data size
C3/6EC8:	7B      	TDC            ; Clear A
C3/6EC9:	A59C    	LDA $9C        ; Member slot
C3/6ECB:	0A      	ASL A          ; Double it
C3/6ECC:	AA      	TAX            ; Index it
C3/6ECD:	C220    	REP #$20       ; 16-bit A
C3/6ECF:	BF516FC3	LDA $C36F51,X  ; VRAM pointer
C3/6ED3:	851B    	STA $1B        ; Set destination
C3/6ED5:	B46D    	LDY $6D,X      ; Actor's address
C3/6ED7:	7B      	TDC            ; Clear A
C3/6ED8:	E220    	SEP #$20       ; 8-bit A
C3/6EDA:	B91400  	LDA $0014,Y    ; Status
C3/6EDD:	2920    	AND #$20       ; Imp?
C3/6EDF:	F004    	BEQ $6EE5      ; Branch if not
C3/6EE1:	A90F    	LDA #$0F       ; Use Imp image
C3/6EE3:	800A    	BRA $6EEF      ; Ignore actor
C3/6EE5:	B90000  	LDA $0000,Y    ; Actor
C3/6EE8:	C901    	CMP #$01       ; Locke?
C3/6EEA:	F003    	BEQ $6EEF      ; Branch if so
C3/6EEC:	B90100  	LDA $0001,Y    ; Graphics set
C3/6EEF:	C220    	REP #$20       ; 16-bit A
C3/6EF1:	0A      	ASL A          ; Double it
C3/6EF2:	AA      	TAX            ; Index it
C3/6EF3:	BF1B6FC3	LDA $C36F1B,X  ; GFX pointer
C3/6EF7:	18      	CLC            ; ...
C3/6EF8:	69001D  	ADC #$1D00     ; Add base adr
C3/6EFB:	851D    	STA $1D        ; Set src LBs
C3/6EFD:	E220    	SEP #$20       ; 8-bit A
C3/6EFF:	60      	RTS

Portrait palette assignments
C3/6F00:	00      	; 00: Terra
C3/6F01:	01      	; 01: Locke
C3/6F02:	02      	; 02: Cyan
C3/6F03:	03      	; 03: Shadow
C3/6F04:	04      	; 04: Edgar
C3/6F05:	05      	; 05: Sabin
C3/6F06:	06      	; 06: Celes
C3/6F07:	07      	; 07: Strago
C3/6F08:	08      	; 08: Relm
C3/6F09:	09      	; 09: Setzer
C3/6F0A:	0A      	; 0A: Moogle
C3/6F0B:	0B      	; 0B: Gau
C3/6F0C:	0C      	; 0C: Gogo
C3/6F0D:	0D      	; 0D: Umaro
C3/6F0E:	0E      	; 0E: Soldier
C3/6F0F:	0F      	; 0F: Imp
C3/6F10:	10      	; 10: Leo
C3/6F11:	11      	; 11: Banon
C3/6F12:	00      	; 12: Terra (unused; esper Terra)
C3/6F13:	0E      	; 13: Soldier (unused; merchant)
C3/6F14:	12      	; 14: Ghost
C3/6F15:	00      	; 15: Terra (unused; Kefka)
C3/6F16:	00      	; 16: Terra (unused; Gestahl)
C3/6F17:	00      	; 17: Terra (unused; Gungho)
C3/6F18:	00      	; 18: Terra (unused; Duane)
C3/6F19:	00      	; 19: Terra (unused; dog)
C3/6F1A:	06      	; 1A: Celes (unused; Maria)

Pointers to portrait graphics
C3/6F1B:	0000    	; 00: Terra
C3/6F1D:	2003    	; 01: Locke
C3/6F1F:	4006    	; 02: Cyan
C3/6F21:	6009    	; 03: Shadow
C3/6F23:	800C    	; 04: Edgar
C3/6F25:	A00F    	; 05: Sabin
C3/6F27:	C012    	; 06: Celes
C3/6F29:	E015    	; 07: Strago
C3/6F2B:	0019    	; 08: Relm
C3/6F2D:	201C    	; 09: Setzer
C3/6F2F:	401F    	; 0A: Mog
C3/6F31:	6022    	; 0B: Gau
C3/6F33:	8025    	; 0C: Gogo
C3/6F35:	A028    	; 0D: Umaro
C3/6F37:	C02B    	; 0E: Soldier
C3/6F39:	E02E    	; 0F: Imp
C3/6F3B:	0032    	; 10: Leo
C3/6F3D:	2035    	; 11: Banon
C3/6F3F:	0000    	; 12: Terra (unused; esper Terra)
C3/6F41:	C02B    	; 13: Soldier (unused; merchant)
C3/6F43:	4038    	; 14: Ghost
C3/6F45:	0000    	; 15: Terra (unused; Kefka)
C3/6F47:	0000    	; 16: Terra (unused; Gestahl)
C3/6F49:	0000    	; 17: Terra (unused; Gungho)
C3/6F4B:	0000    	; 18: Terra (unused; Duane)
C3/6F4D:	0000    	; 19: Terra (unused; dog)
C3/6F4F:	C012    	; 1A: Celes (unused; Maria)

VRAM pointers for portrait graphics
C3/6F51:	0026    	; Member 1
C3/6F53:	0028    	; Member 2
C3/6F55:	002A    	; Member 3
C3/6F57:	002C    	; Member 4
C3/6F59:	002E    	; Bogus...
C3/6F5B:	0030    	; Bogus...
C3/6F5D:	0032    	; Bogus...
C3/6F5F:	0034    	; Bogus...

List actor sprites for save file 1
C3/6F61:	A491    	LDY $91        ; Blank file?
C3/6F63:	F01B    	BEQ $6F80      ; Nobody if so
C3/6F65:	A600    	LDX $00        ; Member slot: 1
C3/6F67:	B569    	LDA $69,X      ; Actor in slot
C3/6F69:	3008    	BMI $6F73      ; Blank if none
C3/6F6B:	20976F  	JSR $6F97      ; Get sprite set
C3/6F6E:	20A66F  	JSR $6FA6      ; Handle soldier
C3/6F71:	8002    	BRA $6F75      ; Skip a line
C3/6F73:	A9FF    	LDA #$FF       ; Sprite: None
C3/6F75:	9F71AA7E	STA $7EAA71,X  ; Set sprite
C3/6F79:	E8      	INX            ; Member slot +1
C3/6F7A:	E00400  	CPX #$0004     ; Done all 4?
C3/6F7D:	D0E8    	BNE $6F67      ; Loop if not
C3/6F7F:	60      	RTS

Fork: Empty party
C3/6F80:	A600    	LDX $00        ; Sprites: 1-4
C3/6F82:	8000    	BRA $6F84      ; ...
C3/6F84:	A9FF    	LDA #$FF       ; Sprite: None
C3/6F86:	9F71AA7E	STA $7EAA71,X  ; Set sprite A
C3/6F8A:	9F72AA7E	STA $7EAA72,X  ; Set sprite B
C3/6F8E:	9F73AA7E	STA $7EAA73,X  ; Set sprite C
C3/6F92:	9F74AA7E	STA $7EAA74,X  ; Set sprite D
C3/6F96:	60      	RTS

Get actor's graphics set
C3/6F97:	DA      	PHX            ; Save X
C3/6F98:	C220    	REP #$20       ; 16-bit A
C3/6F9A:	8A      	TXA            ; Actor number
C3/6F9B:	0A      	ASL A          ; Double it
C3/6F9C:	AA      	TAX            ; Index it
C3/6F9D:	B46D    	LDY $6D,X      ; Actor's address
C3/6F9F:	E220    	SEP #$20       ; 8-bit A
C3/6FA1:	FA      	PLX            ; Restore X
C3/6FA2:	B90100  	LDA $0001,Y    ; Graphics set
C3/6FA5:	60      	RTS

Choose between green or brown soldier
C3/6FA6:	C90E    	CMP #$0E       ; Soldier sprite?
C3/6FA8:	D00D    	BNE $6FB7      ; Exit if not
C3/6FAA:	ADA01E  	LDA $1EA0      ; Event flags
C3/6FAD:	8908    	BIT #$08       ; Soldier disguise?
C3/6FAF:	F004    	BEQ $6FB5      ; Pick brown if not
C3/6FB1:	A916    	LDA #$16       ; Use green soldier
C3/6FB3:	8002    	BRA $6FB7      ; Exit
C3/6FB5:	A90E    	LDA #$0E       ; Use brown soldier
C3/6FB7:	60      	RTS

List actor sprites for save file 2
C3/6FB8:	A493    	LDY $93        ; Blank file?
C3/6FBA:	F01B    	BEQ $6FD7      ; Nobody if so
C3/6FBC:	A600    	LDX $00        ; Member slot: 1
C3/6FBE:	B569    	LDA $69,X      ; Actor in slot
C3/6FC0:	3008    	BMI $6FCA      ; Blank if none
C3/6FC2:	20976F  	JSR $6F97      ; Get sprite set
C3/6FC5:	20A66F  	JSR $6FA6      ; Handle soldier
C3/6FC8:	8002    	BRA $6FCC      ; Skip a line
C3/6FCA:	A9FF    	LDA #$FF       ; Sprite: None
C3/6FCC:	9F75AA7E	STA $7EAA75,X  ; Set sprite
C3/6FD0:	E8      	INX            ; Member slot +1
C3/6FD1:	E00400  	CPX #$0004     ; Done all 4?
C3/6FD4:	D0E8    	BNE $6FBE      ; Loop if not
C3/6FD6:	60      	RTS

Fork: Empty party
C3/6FD7:	A20400  	LDX #$0004     ; Sprites: 5-8
C3/6FDA:	80A8    	BRA $6F84      ; Blank sprites

List actor sprites for save file 3
C3/6FDC:	A495    	LDY $95        ; Blank file?
C3/6FDE:	F01B    	BEQ $6FFB      ; Nobody if so
C3/6FE0:	A600    	LDX $00        ; Member slot: 1
C3/6FE2:	B569    	LDA $69,X      ; Actor in slot
C3/6FE4:	3008    	BMI $6FEE      ; Blank if none
C3/6FE6:	20976F  	JSR $6F97      ; Get sprite set
C3/6FE9:	20A66F  	JSR $6FA6      ; Handle soldier
C3/6FEC:	8002    	BRA $6FF0      ; Skip a line
C3/6FEE:	A9FF    	LDA #$FF       ; Sprite: None
C3/6FF0:	9F79AA7E	STA $7EAA79,X  ; Set sprite
C3/6FF4:	E8      	INX            ; Member slot +1
C3/6FF5:	E00400  	CPX #$0004     ; Done all 4?
C3/6FF8:	D0E8    	BNE $6FE2      ; Loop if not
C3/6FFA:	60      	RTS

Fork: Empty party
C3/6FFB:	A20800  	LDX #$0008     ; Sprites: 9-12
C3/6FFE:	8084    	BRA $6F84      ; Blank sprites

Upload actor's portrait graphics
C3/7000:	A09001  	LDY #$0190     ; Tiles: 25
C3/7003:	BF001DED	LDA $ED1D00,X  ; 8 px, 2 planes
C3/7007:	8D1821  	STA $2118      ; Save in VRAM
C3/700A:	E8      	INX            ; Index +1
C3/700B:	E8      	INX            ; Index +1
C3/700C:	88      	DEY            ; One less word
C3/700D:	D0F4    	BNE $7003      ; Loop till last
C3/700F:	60      	RTS

Create a blank portrait for Lineup menu
C3/7010:	A2519F  	LDX #$9F51     ; 7E/9F51
C3/7013:	8E8121  	STX $2181      ; Set WRAM LBs
C3/7016:	A29001  	LDX #$0190     ; Tiles: 25
C3/7019:	9C8021  	STZ $2180      ; 8 px, 1 plane
C3/701C:	9C8021  	STZ $2180      ; 8 px, 1 plane
C3/701F:	CA      	DEX            ; One less word
C3/7020:	D0F7    	BNE $7019      ; Loop till last
C3/7022:	60      	RTS

Validate SRAM markers
C3/7023:	C220    	REP #$20       ; 16-bit A
C3/7025:	A91BE4  	LDA #$E41B     ; Square's marker
C3/7028:	CFF87F30	CMP $307FF8    ; In file A?
C3/702C:	F019    	BEQ $7047      ; Okay if so
C3/702E:	CFFA7F30	CMP $307FFA    ; In file B?
C3/7032:	F013    	BEQ $7047      ; Okay if so
C3/7034:	CFFC7F30	CMP $307FFC    ; In file C?
C3/7038:	F00D    	BEQ $7047      ; Okay if so
C3/703A:	CFFE7F30	CMP $307FFE    ; In file D?...
C3/703E:	F007    	BEQ $7047      ; Okay if so
C3/7040:	E220    	SEP #$20       ; 8-bit A
C3/7042:	204B70  	JSR $704B      ; Delete all SRAM
C3/7045:	18      	CLC            ; Skip Load menu
C3/7046:	60      	RTS            ; Exit
C3/7047:	E220    	SEP #$20       ; 8-bit A
C3/7049:	38      	SEC            ; Call Load menu
C3/704A:	60      	RTS

Delete all saved data
C3/704B:	8B      	PHB            ; Save DB
C3/704C:	A930    	LDA #$30       ; Bank: 30
C3/704E:	48      	PHA            ; Put on stack
C3/704F:	AB      	PLB            ; Set DB to 30
C3/7050:	A20000  	LDX #$0000     ; SRAM index: 0
C3/7053:	C220    	REP #$20       ; 16-bit A
C3/7055:	9E0060  	STZ $6000,X    ; Clear SRAM word
C3/7058:	E8      	INX            ; Index +1
C3/7059:	E8      	INX            ; Index +1
C3/705A:	9E0060  	STZ $6000,X    ; Clear SRAM word
C3/705D:	E8      	INX            ; Index +1
C3/705E:	E8      	INX            ; Index +1
C3/705F:	E00020  	CPX #$2000     ; Fully cleared?
C3/7062:	D0F1    	BNE $7055      ; Loop if not
C3/7064:	E220    	SEP #$20       ; 8-bit A
C3/7066:	AB      	PLB            ; Restore DB
C3/7067:	60      	RTS

Reset saved cursor positions for main menu
C3/7068:	A20000  	LDX #$0000     ; Index: 0
C3/706B:	9E2B02  	STZ $022B,X    ; Clear position
C3/706E:	E8      	INX            ; Point to next
C3/706F:	E01F00  	CPX #$001F     ; Past $0249?
C3/7072:	D0F7    	BNE $706B      ; Loop if not
C3/7074:	A901    	LDA #$01       ; Skills: "Magic"
C3/7076:	8D3702  	STA $0237      ; Set for ally 1
C3/7079:	8D3902  	STA $0239      ; Set for ally 2
C3/707C:	8D3B02  	STA $023B      ; Set for ally 3
C3/707F:	8D3D02  	STA $023D      ; Set for ally 4
C3/7082:	60      	RTS

Mark all save files as Square's property
C3/7083:	C220    	REP #$20       ; 16-bit A
C3/7085:	A91BE4  	LDA #$E41B     ; Square marker
C3/7088:	8FF87F30	STA $307FF8    ; Mark file A
C3/708C:	8FFA7F30	STA $307FFA    ; Mark file B
C3/7090:	8FFC7F30	STA $307FFC    ; Mark file C
C3/7094:	8FFE7F30	STA $307FFE    ; No file D...
C3/7098:	E220    	SEP #$20       ; 8-bit A
C3/709A:	60      	RTS

Reset game data for Load menu
C3/709B:	206870  	JSR $7068      ; Clear cursor mem
C3/709E:	A0FF7F  	LDY #$7FFF     ; Color: White
C3/70A1:	8C551D  	STY $1D55      ; Set user font's
C3/70A4:	A912    	LDA #$12       ; Buttons: A & B
C3/70A6:	8D501D  	STA $1D50      ; Define purpose
C3/70A9:	A934    	LDA #$34       ; Buttons: X & Y
C3/70AB:	8D511D  	STA $1D51      ; Define purpose
C3/70AE:	A956    	LDA #$56       ; Buttons: L & R
C3/70B0:	8D521D  	STA $1D52      ; Define purpose
C3/70B3:	A906    	LDA #$06       ; Button: Select
C3/70B5:	8D531D  	STA $1D53      ; Define purpose
C3/70B8:	A92A    	LDA #$2A       ; Bat.Mode, etc.
C3/70BA:	8D4D1D  	STA $1D4D      ; Define options
C3/70BD:	7B      	TDC            ; Clear A
C3/70BE:	A8      	TAY            ; Clear Y
C3/70BF:	8CC71D  	STY $1DC7      ; Save count: 0
C3/70C2:	9C541D  	STZ $1D54      ; Mag.Order, etc.
C3/70C5:	9C4E1D  	STZ $1D4E      ; Wallpaper, etc.
C3/70C8:	9C4F1D  	STZ $1D4F      ; Pad assignments
C3/70CB:	8C6318  	STY $1863      ; SRAM hours, mins
C3/70CE:	9C6518  	STZ $1865      ; SRAM seconds
C3/70D1:	8C6018  	STY $1860      ; Gold LBs
C3/70D4:	9C6218  	STZ $1862      ; Gold HB
C3/70D7:	8C6618  	STY $1866      ; Steps LBs
C3/70DA:	9C6818  	STZ $1868      ; Steps HB
C3/70DD:	8C1B02  	STY $021B      ; Real hours, mins
C3/70E0:	8C1D02  	STY $021D      ; Real secs, frames
C3/70E3:	20BC6B  	JSR $6BBC      ; Reset skin colors
C3/70E6:	60      	RTS

2C: Initialize Lineup menu
C3/70E7:	20FC70  	JSR $70FC      ; Init variables
C3/70EA:	644A    	STZ $4A        ; Cursor area: Top
C3/70EC:	645A    	STZ $5A        ; Always 0...
C3/70EE:	6499    	STZ $99        ; Always 0...
C3/70F0:	202A76  	JSR $762A      ; List/Create actors
C3/70F3:	208274  	JSR $7482      ; Load navig data
C3/70F6:	208B74  	JSR $748B      ; Relocate cursor
C3/70F9:	4C1471  	JMP $7114      ; Draw menu, etc.

Initialize variables for Lineup menu
C3/70FC:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/70FF:	200469  	JSR $6904      ; Reset BGs' X/Y
C3/7102:	A903    	LDA #$03       ; 64x64 at $0000
C3/7104:	8D0721  	STA $2107      ; Set BG1 map loc
C3/7107:	A9C0    	LDA #$C0       ; Channels: 6, 7
C3/7109:	1443    	TRB $43        ; Halt HDMA 6+7...
C3/710B:	A902    	LDA #$02       ; Main cursor: On
C3/710D:	8546    	STA $46        ; Bar/Blinker: Off
C3/710F:	A906    	LDA #$06       ; Status icons: Temp
C3/7111:	0447    	TSB $47        ; Set menu flag
C3/7113:	60      	RTS

Draw Lineup menu, etc.
C3/7114:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/7117:	20C575  	JSR $75C5      ; Set to shift text
C3/711A:	202275  	JSR $7522      ; Draw boxes/title
C3/711D:	203F79  	JSR $793F      ; Create portrait
C3/7120:	205379  	JSR $7953      ; Draw actor info
C3/7123:	20FD0E  	JSR $0EFD      ; Queue text upload
C3/7126:	A92D    	LDA #$2D       ; C3/7168
C3/7128:	8527    	STA $27        ; Queue: Choice 1
C3/712A:	A966    	LDA #$66       ; C3/79FF
C3/712C:	8526    	STA $26        ; Next: Fade-in
C3/712E:	4C4135  	JMP $3541      ; BRT:1 + NMI

7D: Return to Lineup menu from Status menu
C3/7131:	20FC70  	JSR $70FC      ; Init variables
C3/7134:	A55D    	LDA $5D        ; Backup of $99
C3/7136:	8599    	STA $99        ; Always 0...
C3/7138:	207776  	JSR $7677      ; Create/lock chars
C3/713B:	A590    	LDA $90        ; Go to party area?
C3/713D:	D00C    	BNE $714B      ; Branch if so
C3/713F:	208274  	JSR $7482      ; Load navig data
C3/7142:	A48E    	LDY $8E        ; Old cursor loc
C3/7144:	844D    	STY $4D        ; Set as current
C3/7146:	208B74  	JSR $748B      ; Relocate cursor
C3/7149:	801A    	BRA $7165      ; Draw menu, etc.

Fork: Back to party area
C3/714B:	A590    	LDA $90        ; ...
C3/714D:	854A    	STA $4A        ; Cursor area: Top
C3/714F:	A58D    	LDA $8D        ; Backup of $5A
C3/7151:	855A    	STA $5A        ; Always 0...
C3/7153:	20DB73  	JSR $73DB      ; Relocate cursor
C3/7156:	A48E    	LDY $8E        ; Old cursor loc
C3/7158:	844D    	STY $4D        ; Set as current
C3/715A:	A579    	LDA $79        ; Cursor wrap flags
C3/715C:	8559    	STA $59        ; Restore them
C3/715E:	A47A    	LDY $7A        ; Row/Col count
C3/7160:	8453    	STY $53        ; Restore format
C3/7162:	201574  	JSR $7415      ; Handle D-Pad
C3/7165:	4C1471  	JMP $7114      ; Draw menu, etc.

2D: Handle Lineup menu choice 1
C3/7168:	20B971  	JSR $71B9      ; Cover D-Pad/stats
C3/716B:	904B    	BCC $71B8      ; If crossed center
C3/716D:	A508    	LDA $08        ; No-autofire keys
C3/716F:	8980    	BIT #$80       ; Pushing A?
C3/7171:	F036    	BEQ $71A9      ; Branch if not
C3/7173:	A54B    	LDA $4B        ; Cursor slot
C3/7175:	18      	CLC            ; Prepare ADC
C3/7176:	654A    	ADC $4A        ; +16 if on party
C3/7178:	655A    	ADC $5A        ; Always 0...
C3/717A:	AA      	TAX            ; Index sum
C3/717B:	BF8DAC7E	LDA $7EAC8D,X  ; Locked slot?
C3/717F:	3021    	BMI $71A2      ; Fail if so
C3/7181:	20B20E  	JSR $0EB2      ; Sound: Click
C3/7184:	A54B    	LDA $4B        ; Cursor slot
C3/7186:	8528    	STA $28        ; Set pick 1's
C3/7188:	A54A    	LDA $4A        ; Cursor area
C3/718A:	8549    	STA $49        ; Set pick 1's
C3/718C:	A55A    	LDA $5A        ; Always 0...
C3/718E:	855B    	STA $5B        ; Ditto...
C3/7190:	A92E    	LDA #$2E       ; C3/720C
C3/7192:	8526    	STA $26        ; Next: Choice 2
C3/7194:	20212F  	JSR $2F21      ; Create blinker
C3/7197:	A54A    	LDA $4A        ; In party area?
C3/7199:	F006    	BEQ $71A1      ; Exit if not
C3/719B:	A902    	LDA #$02       ; Anim mode: 2
C3/719D:	9F49367E	STA $7E3649,X  ; Set blinker's
C3/71A1:	60      	RTS

Fork: Forced member
C3/71A2:	20C00E  	JSR $0EC0      ; Play buzzer
C3/71A5:	205D30  	JSR $305D      ; Pixelate screen
C3/71A8:	60      	RTS

Fork: Exit attempt
C3/71A9:	A509    	LDA $09        ; No-autofire keys
C3/71AB:	8910    	BIT #$10       ; Pushing Start?
C3/71AD:	D006    	BNE $71B5      ; Branch if so
C3/71AF:	A509    	LDA $09        ; ...
C3/71B1:	8980    	BIT #$80       ; Pushing B?
C3/71B3:	F003    	BEQ $71B8      ; Exit if not
C3/71B5:	209672  	JSR $7296      ; Validate groups
C3/71B8:	60      	RTS

Handle D-Pad and update actor info in Lineup menu
C3/71B9:	20B875  	JSR $75B8      ; Update char info
C3/71BC:	A50B    	LDA $0B        ; Semi-auto keys
C3/71BE:	8904    	BIT #$04       ; Pushing down?
C3/71C0:	F01C    	BEQ $71DE      ; Branch if not
C3/71C2:	A54E    	LDA $4E        ; Cursor row
C3/71C4:	C901    	CMP #$01       ; 2nd or 4th?
C3/71C6:	D016    	BNE $71DE      ; Branch if not
C3/71C8:	A54A    	LDA $4A        ; In party area?
C3/71CA:	D012    	BNE $71DE      ; Branch if so

Fork: Enter party area
C3/71CC:	A910    	LDA #$10       ; Cursor slot: +16
C3/71CE:	854A    	STA $4A        ; Set area mod
C3/71D0:	A599    	LDA $99        ; Always 0...
C3/71D2:	0A      	ASL A          ; x2...
C3/71D3:	0A      	ASL A          ; x4...
C3/71D4:	855A    	STA $5A        ; Always 0...
C3/71D6:	20DB73  	JSR $73DB      ; Relocate cursor
C3/71D9:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/71DC:	18      	CLC            ; Mark area exit
C3/71DD:	60      	RTS

Fork: Handle up
C3/71DE:	A50B    	LDA $0B        ; Semi-auto keys
C3/71E0:	8908    	BIT #$08       ; Pushing up?
C3/71E2:	F022    	BEQ $7206      ; Branch if not
C3/71E4:	A54E    	LDA $4E        ; On row 1 or 3?
C3/71E6:	D01E    	BNE $7206      ; Branch if not
C3/71E8:	A54A    	LDA $4A        ; In party area?
C3/71EA:	F01A    	BEQ $7206      ; Branch if not

Fork: Exit party area
C3/71EC:	A54D    	LDA $4D        ; Cursor column
C3/71EE:	855E    	STA $5E        ; Set as former
C3/71F0:	644A    	STZ $4A        ; Cursor area: Top
C3/71F2:	645A    	STZ $5A        ; Always 0...
C3/71F4:	208274  	JSR $7482      ; Load navig data
C3/71F7:	A901    	LDA #$01       ; Row: 2nd
C3/71F9:	854E    	STA $4E        ; Set cursor row
C3/71FB:	204C74  	JSR $744C      ; Adjust column
C3/71FE:	208B74  	JSR $748B      ; Relocate cursor
C3/7201:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/7204:	18      	CLC            ; Mark area exit
C3/7205:	60      	RTS

Fork: Staying within same area
C3/7206:	201574  	JSR $7415      ; Handle D-Pad
C3/7209:	38      	SEC            ; Unmark area exit
C3/720A:	60      	RTS            ; ...
C3/720B:	60      	RTS

2E: Handle Lineup menu choice 2
C3/720C:	20B971  	JSR $71B9      ; Cover D-Pad/stats
C3/720F:	90FA    	BCC $720B      ; If crossed center
C3/7211:	A508    	LDA $08        ; No-autofire keys
C3/7213:	8980    	BIT #$80       ; Pushing A?
C3/7215:	F066    	BEQ $727D      ; Branch if not
C3/7217:	7B      	TDC            ; Clear A
C3/7218:	A54B    	LDA $4B        ; Cursor slot B
C3/721A:	18      	CLC            ; Prepare ADC
C3/721B:	654A    	ADC $4A        ; +16 if on party
C3/721D:	655A    	ADC $5A        ; Always 0...
C3/721F:	85E0    	STA $E0        ; Memorize sum
C3/7221:	AA      	TAX            ; Index it
C3/7222:	BF8DAC7E	LDA $7EAC8D,X  ; Locked slot?
C3/7226:	3067    	BMI $728F      ; Fail if so
C3/7228:	7B      	TDC            ; Clear A
C3/7229:	A528    	LDA $28        ; Cursor slot A
C3/722B:	18      	CLC            ; Prepare ADC
C3/722C:	6549    	ADC $49        ; +16 if on party
C3/722E:	655B    	ADC $5B        ; Always 0...
C3/7230:	C5E0    	CMP $E0        ; Slots are same?
C3/7232:	D031    	BNE $7265      ; Swap chars if not

Fork: Double-clicked a slot
C3/7234:	A5E0    	LDA $E0        ; Chosen slot
C3/7236:	AA      	TAX            ; Index it
C3/7237:	BF899D7E	LDA $7E9D89,X  ; Empty slot?
C3/723B:	303A    	BMI $7277      ; Fail if so
C3/723D:	20B20E  	JSR $0EB2      ; Sound: Click
C3/7240:	A559    	LDA $59        ; Cursor wrap flags
C3/7242:	8579    	STA $79        ; Make backup copy
C3/7244:	A453    	LDY $53        ; Rows/Cols count
C3/7246:	847A    	STY $7A        ; Make backup copy
C3/7248:	A44D    	LDY $4D        ; Cursor position
C3/724A:	848E    	STY $8E        ; Set return loc
C3/724C:	A54A    	LDA $4A        ; Area indicator
C3/724E:	8590    	STA $90        ; Set for return
C3/7250:	A55A    	LDA $5A        ; Always 0...
C3/7252:	858D    	STA $8D        ; Make a backup
C3/7254:	A599    	LDA $99        ; Always 0...
C3/7256:	855D    	STA $5D        ; Make a backup
C3/7258:	A942    	LDA #$42       ; C3/631D
C3/725A:	8527    	STA $27        ; Queue Status menu
C3/725C:	A967    	LDA #$67       ; C3/79F0
C3/725E:	8526    	STA $26        ; Next: Fade-out
C3/7260:	A97D    	LDA #$7D       ; C3/7131
C3/7262:	854C    	STA $4C        ; Set return cmd
C3/7264:	60      	RTS

Fork: Swap slot contents
C3/7265:	20B20E  	JSR $0EB2      ; Sound: Click
C3/7268:	A907    	LDA #$07       ; Actors: Delete
C3/726A:	1447    	TRB $47        ; Set menu flag
C3/726C:	20F872  	JSR $72F8      ; Swap positions
C3/726F:	20B011  	JSR $11B0      ; Delete actors
C3/7272:	201376  	JSR $7613      ; Create actors
C3/7275:	800F    	BRA $7286      ; Next: Choice 1

Fork: Double-clicked empty slot
C3/7277:	20C00E  	JSR $0EC0      ; Play buzzer
C3/727A:	205D30  	JSR $305D      ; Pixelate screen

Fork: Handle B
C3/727D:	A509    	LDA $09        ; No-autofire keys
C3/727F:	8980    	BIT #$80       ; Pushing B?
C3/7281:	F00B    	BEQ $728E      ; Exit if not
C3/7283:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/7286:	A92D    	LDA #$2D       ; C3/7168
C3/7288:	8526    	STA $26        ; Next: Choice 1
C3/728A:	A905    	LDA #$05       ; Blinker: Off
C3/728C:	1446    	TRB $46        ; Set menu flag
C3/728E:	60      	RTS

Fork: Forced member
C3/728F:	20C00E  	JSR $0EC0      ; Play buzzer
C3/7292:	205D30  	JSR $305D      ; Pixelate screen
C3/7295:	60      	RTS

Handle attempt to exit Lineup menu
C3/7296:	7B      	TDC            ; Clear A
C3/7297:	AA      	TAX            ; Slot index: 0
C3/7298:	AD0102  	LDA $0201      ; Group count
C3/729B:	297F    	AND #$7F       ; Clear flag
C3/729D:	0A      	ASL A          ; x2
C3/729E:	0A      	ASL A          ; x4 members
C3/729F:	85F3    	STA $F3        ; Set index cap
C3/72A1:	64F4    	STZ $F4        ; Clear its HB
C3/72A3:	64E0    	STZ $E0        ; Members: 0
C3/72A5:	A00400  	LDY #$0004     ; Slots left: 4
C3/72A8:	BF999D7E	LDA $7E9D99,X  ; Empty slot?
C3/72AC:	3002    	BMI $72B0      ; Branch if so
C3/72AE:	E6E0    	INC $E0        ; +1 member
C3/72B0:	E8      	INX            ; Slot index +1
C3/72B1:	88      	DEY            ; One less slot
C3/72B2:	D0F4    	BNE $72A8      ; Loop till 4th
C3/72B4:	A5E0    	LDA $E0        ; Empty party?
C3/72B6:	F013    	BEQ $72CB      ; Fail if so
C3/72B8:	E4F3    	CPX $F3        ; Last party?
C3/72BA:	D0E7    	BNE $72A3      ; Loop if not
C3/72BC:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/72BF:	9C0502  	STZ $0205      ; Never read...
C3/72C2:	A9FF    	LDA #$FF       ; Null value
C3/72C4:	8527    	STA $27        ; Queue menu exit
C3/72C6:	A967    	LDA #$67       ; C3/79F0
C3/72C8:	8526    	STA $26        ; Next: Fade-out
C3/72CA:	60      	RTS

Fork: Draw "You need <#> group(s)."
C3/72CB:	20C00E  	JSR $0EC0      ; Play buzzer
C3/72CE:	A920    	LDA #$20       ; Palette 0
C3/72D0:	8529    	STA $29        ; Color: User's
C3/72D2:	AD0102  	LDA $0201      ; Event data
C3/72D5:	2907    	AND #$07       ; Group count
C3/72D7:	C901    	CMP #$01       ; One group?
C3/72D9:	F00E    	BEQ $72E9      ; Branch if so
C3/72DB:	A0B77A  	LDY #$7AB7     ; Text pointer
C3/72DE:	20F902  	JSR $02F9      ; Draw message
C3/72E1:	A22F39  	LDX #$392F     ; Tilemap pointer
C3/72E4:	20F775  	JSR $75F7      ; Draw group count
C3/72E7:	8006    	BRA $72EF      ; Skip 2 lines

Fork: Draw "No one there!"
C3/72E9:	A0CE7A  	LDY #$7ACE     ; Text pointer
C3/72EC:	20F902  	JSR $02F9      ; Draw message
C3/72EF:	A920    	LDA #$20       ; Frames: 32
C3/72F1:	8520    	STA $20        ; Set wait timer
C3/72F3:	A969    	LDA #$69       ; C3/7A87
C3/72F5:	8526    	STA $26        ; Next: Wait
C3/72F7:	60      	RTS

Swap actor positions in Lineup menu
C3/72F8:	7B      	TDC            ; Clear A
C3/72F9:	A528    	LDA $28        ; Chosen slot A
C3/72FB:	18      	CLC            ; Prepare ADC
C3/72FC:	6549    	ADC $49        ; +16 if on party
C3/72FE:	655B    	ADC $5B        ; Always 0...
C3/7300:	AA      	TAX            ; Index sum
C3/7301:	BF899D7E	LDA $7E9D89,X  ; Actor in slot A
C3/7305:	85E5    	STA $E5        ; Memorize it
C3/7307:	100E    	BPL $7317      ; Branch if any

Fork: Fake party info for empty slot A
C3/7309:	BF519E7E	LDA $7E9E51,X  ; Party number
C3/730D:	1FAF73C3	ORA $C373AF,X  ; Add roster slot
C3/7311:	85E0    	STA $E0        ; Memorize it
C3/7313:	64E1    	STZ $E1        ; Clear row...
C3/7315:	800F    	BRA $7326      ; Handle slot B

Fork: Get party info of actor A
C3/7317:	A8      	TAY            ; Index actor A
C3/7318:	B95018  	LDA $1850,Y    ; Party info
C3/731B:	29DF    	AND #$DF       ; Discard row
C3/731D:	85E0    	STA $E0        ; Memorize it
C3/731F:	B95018  	LDA $1850,Y    ; Party info
C3/7322:	2920    	AND #$20       ; Isolate row
C3/7324:	85E1    	STA $E1        ; Memorize it

Fork: Get actor in slot B
C3/7326:	A54B    	LDA $4B        ; Chosen slot B
C3/7328:	18      	CLC            ; ...
C3/7329:	654A    	ADC $4A        ; +16 if on party
C3/732B:	655A    	ADC $5A        ; Always 0...
C3/732D:	AA      	TAX            ; Index sum
C3/732E:	BF899D7E	LDA $7E9D89,X  ; Actor in slot B
C3/7332:	85E6    	STA $E6        ; Memorize it
C3/7334:	100E    	BPL $7344      ; Branch if any

Fork: Fake party info for empty slot B
C3/7336:	BF519E7E	LDA $7E9E51,X  ; Party number
C3/733A:	1FAF73C3	ORA $C373AF,X  ; Add roster slot
C3/733E:	85E2    	STA $E2        ; Memorize it
C3/7340:	64E3    	STZ $E3        ; Clear row...
C3/7342:	800F    	BRA $7353      ; Swap positions

Fork: Get party info of actor B
C3/7344:	A8      	TAY            ; Index actor B
C3/7345:	B95018  	LDA $1850,Y    ; Party info
C3/7348:	29DF    	AND #$DF       ; Discard row
C3/734A:	85E2    	STA $E2        ; Memorize it
C3/734C:	B95018  	LDA $1850,Y    ; Party info
C3/734F:	2920    	AND #$20       ; Isolate row
C3/7351:	85E3    	STA $E3        ; Memorize it

Fork: Swap slot positions
C3/7353:	A5E0    	LDA $E0        ; Actor A info
C3/7355:	2940    	AND #$40       ; Object is on?
C3/7357:	D008    	BNE $7361      ; Branch if so
C3/7359:	A5E2    	LDA $E2        ; Actor B info
C3/735B:	2940    	AND #$40       ; Object is on?
C3/735D:	D01B    	BNE $737A      ; Branch if so
C3/735F:	8030    	BRA $7391      ; Swap menu slots

Fork: Update party info for actor A
C3/7361:	7B      	TDC            ; ...
C3/7362:	A528    	LDA $28        ; Chosen slot A
C3/7364:	18      	CLC            ; Prepare ADC
C3/7365:	6549    	ADC $49        ; +16 if on party
C3/7367:	655B    	ADC $5B        ; Always 0...
C3/7369:	AA      	TAX            ; Index sum
C3/736A:	BF899D7E	LDA $7E9D89,X  ; Actor in slot A
C3/736E:	30E9    	BMI $7359      ; Branch if none
C3/7370:	AA      	TAX            ; Index it
C3/7371:	A5E2    	LDA $E2        ; Actor B info
C3/7373:	05E1    	ORA $E1        ; Add A's row
C3/7375:	9D5018  	STA $1850,X    ; Set A's info
C3/7378:	80DF    	BRA $7359      ; Repeat for B

Fork: Update party info for actor B
C3/737A:	7B      	TDC            ; ...
C3/737B:	A54B    	LDA $4B        ; Chosen slot B
C3/737D:	18      	CLC            ; Prepare ADC
C3/737E:	654A    	ADC $4A        ; +16 if on party
C3/7380:	655A    	ADC $5A        ; Always 0...
C3/7382:	AA      	TAX            ; Index sum
C3/7383:	BF899D7E	LDA $7E9D89,X  ; Actor in slot B
C3/7387:	3008    	BMI $7391      ; Branch if none
C3/7389:	AA      	TAX            ; Index it
C3/738A:	A5E0    	LDA $E0        ; Actor A info
C3/738C:	05E3    	ORA $E3        ; Add B's row
C3/738E:	9D5018  	STA $1850,X    ; Set B's info

Fork: Swap slot contents
C3/7391:	7B      	TDC            ; ...
C3/7392:	A54B    	LDA $4B        ; Chosen slot B
C3/7394:	18      	CLC            ; Prepare ADC
C3/7395:	654A    	ADC $4A        ; +16 if in party
C3/7397:	655A    	ADC $5A        ; Always 0...
C3/7399:	AA      	TAX            ; Index sum
C3/739A:	A5E5    	LDA $E5        ; Actor in slot A
C3/739C:	9F899D7E	STA $7E9D89,X  ; Put in slot B
C3/73A0:	A528    	LDA $28        ; Chosen slot A
C3/73A2:	18      	CLC            ; Prepare ADC
C3/73A3:	6549    	ADC $49        ; +16 if in party
C3/73A5:	655B    	ADC $5B        ; Always 0...
C3/73A7:	AA      	TAX            ; Index sum
C3/73A8:	A5E6    	LDA $E6        ; Actor in slot B
C3/73AA:	9F899D7E	STA $7E9D89,X  ; Put in slot A
C3/73AE:	60      	RTS

Roster position and object status for Lineup menu slots
C3/73AF:	40      	; Non-party slot 1
C3/73B0:	40      	; Non-party slot 2
C3/73B1:	40      	; Non-party slot 3
C3/73B2:	40      	; Non-party slot 4
C3/73B3:	40      	; Non-party slot 5
C3/73B4:	40      	; Non-party slot 6
C3/73B5:	40      	; Non-party slot 7
C3/73B6:	40      	; Non-party slot 8
C3/73B7:	40      	; Non-party slot 9
C3/73B8:	40      	; Non-party slot 10
C3/73B9:	40      	; Non-party slot 11
C3/73BA:	40      	; Non-party slot 12
C3/73BB:	40      	; Non-party slot 13
C3/73BC:	40      	; Non-party slot 14
C3/73BD:	40      	; Non-party slot 15
C3/73BE:	40      	; Non-party slot 16
C3/73BF:	40      	; Party 1, NW
C3/73C0:	48      	; Party 1, SW
C3/73C1:	50      	; Party 1, NE
C3/73C2:	58      	; Party 1, SE
C3/73C3:	40      	; Party 2, NW
C3/73C4:	48      	; Party 2, SW
C3/73C5:	50      	; Party 2, NE
C3/73C6:	58      	; Party 2, SE
C3/73C7:	40      	; Party 3, NW
C3/73C8:	48      	; Party 3, SW
C3/73C9:	50      	; Party 3, NE
C3/73CA:	58      	; Party 3, SE
C3/73CB:	40      	; Party 4, NW (unused)
C3/73CC:	48      	; Party 4, SW (unused)
C3/73CD:	50      	; Party 4, NE (unused)
C3/73CE:	58      	; Party 4, SE (unused)
C3/73CF:	40      	; Party 5, NW (unused)
C3/73D0:	48      	; Party 5, SW (unused)
C3/73D1:	50      	; Party 5, NE (unused)
C3/73D2:	58      	; Party 5, SE (unused)
C3/73D3:	40      	; Party 6, NW (unused)
C3/73D4:	48      	; Party 6, SW (unused)
C3/73D5:	50      	; Party 6, NE (unused)
C3/73D6:	58      	; Party 6, SE (unused)
C3/73D7:	40      	; Party 7, NW (unused)
C3/73D8:	48      	; Party 7, SW (unused)
C3/73D9:	50      	; Party 7, NE (unused)
C3/73DA:	58      	; Party 7, SE (unused)

Load nav data for party area of Lineup menu, relocate cursor
C3/73DB:	A54D    	LDA $4D        ; Cursor column
C3/73DD:	855E    	STA $5E        ; Set as former
C3/73DF:	AD0102  	LDA $0201      ; Group count
C3/73E2:	297F    	AND #$7F       ; Clear flag
C3/73E4:	C901    	CMP #$01       ; One group?
C3/73E6:	F00D    	BEQ $73F5      ; Branch if so
C3/73E8:	C902    	CMP #$02       ; Two groups?
C3/73EA:	F019    	BEQ $7405      ; Branch if so

Fork: Three groups
C3/73EC:	20AF74  	JSR $74AF      ; Load navig data
C3/73EF:	203274  	JSR $7432      ; Set cursor column
C3/73F2:	4CB874  	JMP $74B8      ; Relocate cursor

Fork: One group
C3/73F5:	209174  	JSR $7491      ; Load navig data
C3/73F8:	A55E    	LDA $5E        ; Old cursor column
C3/73FA:	C901    	CMP #$01       ; First column?
C3/73FC:	9002    	BCC $7400      ; Retain it if so
C3/73FE:	A901    	LDA #$01       ; Column: 2nd
C3/7400:	854D    	STA $4D        ; Set new column
C3/7402:	4C9A74  	JMP $749A      ; Relocate cursor

Fork: Two groups
C3/7405:	20A074  	JSR $74A0      ; Load navig data
C3/7408:	A55E    	LDA $5E        ; Old cursor column
C3/740A:	C903    	CMP #$03       ; Within first 3?
C3/740C:	9002    	BCC $7410      ; Retain it if so
C3/740E:	A903    	LDA #$03       ; Column: 4th
C3/7410:	854D    	STA $4D        ; Set new column
C3/7412:	4CA974  	JMP $74A9      ; Relocate cursor

Handle D-Pad for Lineup menu
C3/7415:	A54A    	LDA $4A        ; In party area?
C3/7417:	F016    	BEQ $742F      ; Branch if not
C3/7419:	AD0102  	LDA $0201      ; Group count
C3/741C:	297F    	AND #$7F       ; Clear flag
C3/741E:	C901    	CMP #$01       ; One group?
C3/7420:	F00A    	BEQ $742C      ; Branch if so
C3/7422:	C902    	CMP #$02       ; Two groups?
C3/7424:	F003    	BEQ $7429      ; Branch if so
C3/7426:	4CB574  	JMP $74B5      ; Handle D-Pad

Fork: Area with two groups
C3/7429:	4CA674  	JMP $74A6      ; Handle D-Pad

Fork: Area with one group
C3/742C:	4C9774  	JMP $7497      ; Handle D-Pad

Fork: Non-party area
C3/742F:	4C8874  	JMP $7488      ; Handle D-Pad

Adjust cursor column upon entering 3-party area of Lineup menu
C3/7432:	A55E    	LDA $5E        ; Former column
C3/7434:	A600    	LDX $00        ; Column index: 0
C3/7436:	DF6674C3	CMP $C37466,X  ; On this column?
C3/743A:	F008    	BEQ $7444      ; Relocate if so
C3/743C:	E8      	INX            ; Index +1
C3/743D:	E8      	INX            ; Index +1
C3/743E:	E01000  	CPX #$0010     ; Done 8 columns?
C3/7441:	D0F3    	BNE $7436      ; Loop if not
C3/7443:	60      	RTS            ; Exit
C3/7444:	E8      	INX            ; Index +1
C3/7445:	BF6674C3	LDA $C37466,X  ; Intended column
C3/7449:	854D    	STA $4D        ; Set new column
C3/744B:	60      	RTS

Adjust cursor column upon leaving 3-party area of Lineup menu
C3/744C:	A55E    	LDA $5E        ; Former column
C3/744E:	A600    	LDX $00        ; Column index: 0
C3/7450:	DF7674C3	CMP $C37476,X  ; On this column?
C3/7454:	F008    	BEQ $745E      ; Relocate if so
C3/7456:	E8      	INX            ; Index +1
C3/7457:	E8      	INX            ; Index +1
C3/7458:	E00C00  	CPX #$000C     ; Done 6 columns?
C3/745B:	D0F3    	BNE $7450      ; Loop if not
C3/745D:	60      	RTS            ; Exit
C3/745E:	E8      	INX            ; Index +1
C3/745F:	BF7674C3	LDA $C37476,X  ; Intended column
C3/7463:	854D    	STA $4D        ; Set new column
C3/7465:	60      	RTS

New cursor column upon entering 3-party area of Lineup menu
C3/7466:	00 00   	; 1 -> 1
C3/7468:	01 01   	; 2 -> 2
C3/746A:	02 01   	; 3 -> 2
C3/746C:	03 02   	; 4 -> 3
C3/746E:	04 03   	; 5 -> 4
C3/7470:	05 04   	; 6 -> 5
C3/7472:	06 04   	; 7 -> 5
C3/7474:	07 05   	; 8 -> 6

New cursor column upon leaving 3-party area of Lineup menu
C3/7476:	00 00   	; 1 -> 1
C3/7478:	01 01   	; 2 -> 2
C3/747A:	02 03   	; 3 -> 4
C3/747C:	03 04   	; 4 -> 5
C3/747E:	04 06   	; 5 -> 7
C3/7480:	05 07   	; 6 -> 8

Load navigation data for non-party area of Lineup menu
C3/7482:	A0BE74  	LDY #$74BE     ; C3/74BE
C3/7485:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for non-party area of Lineup menu
C3/7488:	202D07  	JSR $072D      ; Handle D-Pad
C3/748B:	A0C374  	LDY #$74C3     ; C3/74C3
C3/748E:	4C4006  	JMP $0640      ; Relocate cursor

Load navigation data for single-party area of Lineup menu
C3/7491:	A0E374  	LDY #$74E3     ; C3/74E3
C3/7494:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for single-party area of Lineup menu
C3/7497:	202D07  	JSR $072D      ; Handle D-Pad
C3/749A:	A0E874  	LDY #$74E8     ; C3/74E8
C3/749D:	4C3706  	JMP $0637      ; Relocate cursor

Load navigation data for two-party area of Lineup menu
C3/74A0:	A0F074  	LDY #$74F0     ; C3/74F0
C3/74A3:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for two-party area of Lineup menu
C3/74A6:	202D07  	JSR $072D      ; Handle D-Pad
C3/74A9:	A0F574  	LDY #$74F5     ; C3/74F5
C3/74AC:	4C3706  	JMP $0637      ; Relocate cursor

Load navigation data for three-party area of Lineup menu
C3/74AF:	A00575  	LDY #$7505     ; C3/7505
C3/74B2:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for three-party area of Lineup menu
C3/74B5:	202D07  	JSR $072D      ; Handle D-Pad
C3/74B8:	A00A75  	LDY #$750A     ; C3/750A
C3/74BB:	4C3706  	JMP $0637      ; Relocate cursor

Navigation data for non-party area of Lineup menu
C3/74BE:	81      	; Never wraps
C3/74BF:	00      	; Initial column
C3/74C0:	00      	; Initial row
C3/74C1:	08      	; 8 columns
C3/74C2:	02      	; 2 rows

Cursor positions for non-party area of Lineup menu
C3/74C3:	0864    	; Slot 1
C3/74C5:	2464    	; Slot 2
C3/74C7:	4064    	; Slot 3
C3/74C9:	5C64    	; Slot 4
C3/74CB:	7864    	; Slot 5
C3/74CD:	9464    	; Slot 6
C3/74CF:	B064    	; Slot 7
C3/74D1:	CC64    	; Slot 8
C3/74D3:	0880    	; Slot 9
C3/74D5:	2480    	; Slot 10
C3/74D7:	4080    	; Slot 11
C3/74D9:	5C80    	; Slot 12
C3/74DB:	7880    	; Slot 13
C3/74DD:	9480    	; Slot 14
C3/74DF:	B080    	; Slot 15
C3/74E1:	CC80    	; Slot 16

Navigation data for single-party area of Lineup menu
C3/74E3:	81      	; Never wraps
C3/74E4:	00      	; Initial column
C3/74E5:	00      	; Initial row
C3/74E6:	02      	; 2 columns
C3/74E7:	02      	; 2 rows

Cursor positions for single-party area of Lineup menu
C3/74E8:	08A4    	; NW
C3/74EA:	28A4    	; NE
C3/74EC:	08C0    	; SW
C3/74EE:	28C0    	; SE

Navigation data for two-party area of Lineup menu
C3/74F0:	81      	; Never wraps
C3/74F1:	00      	; Initial column
C3/74F2:	00      	; Initial row
C3/74F3:	04      	; 4 columns
C3/74F4:	02      	; 2 rows

Cursor positions for two-party area of Lineup menu
C3/74F5:	08A4    	; Party 1, NW
C3/74F7:	28A4    	; Party 1, NE
C3/74F9:	58A4    	; Party 2, NW
C3/74FB:	78A4    	; Party 2, NE
C3/74FD:	08C0    	; Party 1, SW
C3/74FF:	28C0    	; Party 1, SE
C3/7501:	58C0    	; Party 2, SW
C3/7503:	78C0    	; Party 2, SE

Navigation data for three-party area of Lineup menu
C3/7505:	81      	; Never wraps
C3/7506:	00      	; Initial column
C3/7507:	00      	; Initial row
C3/7508:	06      	; 6 columns
C3/7509:	02      	; 2 rows

Cursor positions for three-party area of Lineup menu
C3/750A:	08A4    	; Party 1, NW
C3/750C:	28A4    	; Party 1, NE
C3/750E:	58A4    	; Party 2, NW
C3/7510:	78A4    	; Party 2, NE
C3/7512:	A8A4    	; Party 3, NW
C3/7514:	C8A4    	; Party 3, NE
C3/7516:	08C0    	; Party 1, SW
C3/7518:	28C0    	; Party 1, SE
C3/751A:	58C0    	; Party 2, SW
C3/751C:	78C0    	; Party 2, SE
C3/751E:	A8C0    	; Party 3, SW
C3/7520:	C8C0    	; Party 3, SE

Draw Lineup menu windows and uppermost text
C3/7522:	A0A075  	LDY #$75A0     ; C3/75A0
C3/7525:	204103  	JSR $0341      ; Draw stats box
C3/7528:	A09C75  	LDY #$759C     ; C3/759C
C3/752B:	204103  	JSR $0341      ; Draw bottom box
C3/752E:	A0A475  	LDY #$75A4     ; C3/75A4
C3/7531:	204103  	JSR $0341      ; Draw middle box
C3/7534:	A0A875  	LDY #$75A8     ; C3/75A8
C3/7537:	204103  	JSR $0341      ; Draw message box
C3/753A:	A09875  	LDY #$7598     ; C3/7598
C3/753D:	204103  	JSR $0341      ; Draw title box
C3/7540:	207275  	JSR $7572      ; Draw party boxes
C3/7543:	20520E  	JSR $0E52      ; Upload windows
C3/7546:	205F75  	JSR $755F      ; Clear BG3 map A
C3/7549:	206E0E  	JSR $0E6E      ; Upload BG3 A+B
C3/754C:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/754F:	A924    	LDA #$24       ; Palette 1
C3/7551:	8529    	STA $29        ; Color: Blue
C3/7553:	A0AE7A  	LDY #$7AAE     ; Text pointer
C3/7556:	20F902  	JSR $02F9      ; Draw "Lineup"
C3/7559:	206275  	JSR $7562      ; Draw "Form..."
C3/755C:	4C280E  	JMP $0E28      ; Upload BG1 A+B

Clear BG3 tilemap A
C3/755F:	4C3C6A  	JMP $6A3C      ; Clear BG3 map A

Draw "Form <#> group(s)."
C3/7562:	A920    	LDA #$20       ; Palette 0
C3/7564:	8529    	STA $29        ; Color: User's
C3/7566:	A0957A  	LDY #$7A95     ; Text pointer
C3/7569:	20F902  	JSR $02F9      ; Draw "Form..."
C3/756C:	A22739  	LDX #$3927     ; Tilemap pointer
C3/756F:	4CF775  	JMP $75F7      ; Draw group count

Draw party windows for Lineup menu
C3/7572:	7B      	TDC            ; Clear A
C3/7573:	AD0102  	LDA $0201      ; Group count
C3/7576:	297F    	AND #$7F       ; Clear flag
C3/7578:	0A      	ASL A          ; Double it
C3/7579:	AA      	TAX            ; Index it
C3/757A:	7C7D75  	JMP ($757D,X)  ; Draw windows

Jump table for the above
C3/757D:	0000    	; Bogus...
C3/757F:	9175    	; 1 group
C3/7581:	8B75    	; 2 groups
C3/7583:	8575    	; 3 groups

Draw 3 party windows for Lineup menu
C3/7585:	A0B475  	LDY #$75B4     ; C3/75B4
C3/7588:	204103  	JSR $0341      ; Draw party 3 box

Draw 2 party windows for Lineup menu
C3/758B:	A0B075  	LDY #$75B0     ; C3/75B0
C3/758E:	204103  	JSR $0341      ; Draw party 2 box

Draw 1 party window for Lineup menu
C3/7591:	A0AC75  	LDY #$75AC     ; C3/75AC
C3/7594:	204103  	JSR $0341      ; Draw party 1 box
C3/7597:	60      	RTS

Window layout for Lineup menu
C3/7598:	8B580602	; 08x04 at $588B (Title)
C3/759C:	CB5C1C07	; 30x09 at $5CCB (Parties)
C3/75A0:	8B591C05	; 30x07 at $598B (Stats)
C3/75A4:	0B5B1C06	; 30x08 at $5B0B (Candidates)
C3/75A8:	9B581402	; 22x04 at $589B (Messages)
C3/75AC:	0B5D0806	; 10x08 at $5D0B (Party 1)
C3/75B0:	1F5D0806	; 10x08 at $5D1F (Party 2)
C3/75B4:	335D0806	; 10x08 at $5D33 (Party 3)

Update displayed actor info in Lineup menu
C3/75B8:	A906    	LDA #$06       ; Status icons: Temp
C3/75BA:	0447    	TSB $47        ; Set menu flag
C3/75BC:	202F7C  	JSR $7C2F      ; Queue face upload
C3/75BF:	20AE7C  	JSR $7CAE      ; Load face colors
C3/75C2:	4C5379  	JMP $7953      ; Draw actor info

Set to condense text in Lineup menu
C3/75C5:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/75C7:	8D5043  	STA $4350      ; Set DMA mode
C3/75CA:	A90E    	LDA #$0E       ; $210E
C3/75CC:	8D5143  	STA $4351      ; To BG1 V-Scroll
C3/75CF:	A0E475  	LDY #$75E4     ; C3/75E4
C3/75D2:	8C5243  	STY $4352      ; Set CH5 src LBs
C3/75D5:	A9C3    	LDA #$C3       ; Bank: C3
C3/75D7:	8D5443  	STA $4354      ; Set CH5 src HB
C3/75DA:	A9C3    	LDA #$C3       ; ...
C3/75DC:	8D5743  	STA $4357      ; Set indir HB
C3/75DF:	A920    	LDA #$20       ; Channel: 5
C3/75E1:	0443    	TSB $43        ; Queue HDMA-5
C3/75E3:	60      	RTS

Text shifting table for the above
C3/75E4:	20 0200 	; Title
C3/75E7:	08 0000 	; Nothing
C3/75EA:	0B 0400 	; Nothing
C3/75ED:	0C 0800 	; Level
C3/75F0:	0C 0C00 	; HP
C3/75F3:	0C 1000 	; MP
C3/75F6:	00      	; End

Draw number of required groups for Lineup menu
C3/75F7:	7B      	TDC            ; Clear A
C3/75F8:	AD0102  	LDA $0201      ; Event data
C3/75FB:	2907    	AND #$07       ; Group count
C3/75FD:	18      	CLC            ; Prepare ADC
C3/75FE:	69B4    	ADC #$B4       ; Turn into text
C3/7600:	85F9    	STA $F9        ; Add to string
C3/7602:	64FA    	STZ $FA        ; End string
C3/7604:	86F7    	STX $F7        ; Set position
C3/7606:	A0F700  	LDY #$00F7     ; 00/00F7
C3/7609:	84E7    	STY $E7        ; Set src LBs
C3/760B:	A900    	LDA #$00       ; Bank: 00
C3/760D:	85E9    	STA $E9        ; Set src HB
C3/760F:	20FF02  	JSR $02FF      ; Draw value
C3/7612:	60      	RTS

List members and create actors after changes in Lineup menu
C3/7613:	A9FF    	LDA #$FF       ; Actor: None
C3/7615:	A600    	LDX $00        ; Member slot: 1
C3/7617:	9F999D7E	STA $7E9D99,X  ; Clear slot
C3/761B:	E8      	INX            ; Point to next
C3/761C:	E09000  	CPX #$0090     ; Done 7 parties?
C3/761F:	D0F6    	BNE $7617      ; Loop if not
C3/7621:	20EA76  	JSR $76EA      ; Compile members
C3/7624:	205378  	JSR $7853      ; Create members
C3/7627:	4C8376  	JMP $7683      ; And candidates

List and create actors in Lineup menu, define locked slots
C3/762A:	A9FF    	LDA #$FF       ; Actor: None
C3/762C:	A600    	LDX $00        ; Menu slot: 1
C3/762E:	9F899D7E	STA $7E9D89,X  ; Clear slot
C3/7632:	E8      	INX            ; Point to next
C3/7633:	E0A000  	CPX #$00A0     ; Done party 7?
C3/7636:	D0F6    	BNE $762E      ; Loop if not
C3/7638:	A2899D  	LDX #$9D89     ; 7E/9D89
C3/763B:	8E8121  	STX $2181      ; Set WRAM LBs
C3/763E:	AD0102  	LDA $0201      ; Forced members?
C3/7641:	3022    	BMI $7665      ; Branch if not

Fork: Compile candidates, etc.
C3/7643:	A600    	LDX $00        ; 1st: Terra
C3/7645:	BD5018  	LDA $1850,X    ; Party info
C3/7648:	2940    	AND #$40       ; Object's off?
C3/764A:	F00B    	BEQ $7657      ; Skip if so
C3/764C:	BD5018  	LDA $1850,X    ; Party info
C3/764F:	2907    	AND #$07       ; In a party?
C3/7651:	D004    	BNE $7657      ; Skip if so
C3/7653:	8A      	TXA            ; Actor's slot
C3/7654:	8D8021  	STA $2180      ; Add to list
C3/7657:	E8      	INX            ; Actor slot +1
C3/7658:	E01000  	CPX #$0010     ; Done all 16?
C3/765B:	D0E8    	BNE $7645      ; Loop if not
C3/765D:	A9FF    	LDA #$FF       ; Null value
C3/765F:	8D8021  	STA $2180      ; End list
C3/7662:	4C7776  	JMP $7677      ; Make/lock chars

Fork: Clear assigned party for all actors
C3/7665:	A600    	LDX $00        ; 1st: Terra
C3/7667:	BD5018  	LDA $1850,X    ; Party info
C3/766A:	29F8    	AND #$F8       ; Clear party
C3/766C:	9D5018  	STA $1850,X    ; Save changes
C3/766F:	E8      	INX            ; Actor slot +1
C3/7670:	E01000  	CPX #$0010     ; Done all 16?
C3/7673:	D0F2    	BNE $7667      ; Loop if not
C3/7675:	80CC    	BRA $7643      ; Create actors

List members, create actors, and define locked slots in Lineup menu
C3/7677:	20EA76  	JSR $76EA      ; Compile members
C3/767A:	205378  	JSR $7853      ; Create members
C3/767D:	208376  	JSR $7683      ; And candidates
C3/7680:	4C0C79  	JMP $790C      ; Set locked slots

Create all candidates in Lineup menu
C3/7683:	A600    	LDX $00        ; Menu slot: 1
C3/7685:	7B      	TDC            ; Clear A
C3/7686:	BF899D7E	LDA $7E9D89,X  ; Actor in slot
C3/768A:	3033    	BMI $76BF      ; Skip if none
C3/768C:	DA      	PHX            ; Save slot
C3/768D:	48      	PHA            ; Save actor
C3/768E:	A900    	LDA #$00       ; ...
C3/7690:	48      	PHA            ; ...
C3/7691:	AB      	PLB            ; ...
C3/7692:	A902    	LDA #$02       ; Min slot: 16
C3/7694:	A05F7A  	LDY #$7A5F     ; C3/7A5F
C3/7697:	207311  	JSR $1173      ; Queue OAM fn
C3/769A:	9B      	TXY            ; Queue index
C3/769B:	7B      	TDC            ; Clear A
C3/769C:	68      	PLA            ; Actor
C3/769D:	9FC9357E	STA $7E35C9,X  ; Save for arrow
C3/76A1:	20EB78  	JSR $78EB      ; Set anim ptr
C3/76A4:	FA      	PLX            ; Menu slot
C3/76A5:	BFCA76C3	LDA $C376CA,X  ; X position
C3/76A9:	99CA33  	STA $33CA,Y    ; Set sprite's
C3/76AC:	BFDA76C3	LDA $C376DA,X  ; Y position
C3/76B0:	994A34  	STA $344A,Y    ; Set sprite's
C3/76B3:	7B      	TDC            ; Clear A
C3/76B4:	99CB33  	STA $33CB,Y    ; No use...
C3/76B7:	994B34  	STA $344B,Y    ; No use...
C3/76BA:	A9D8    	LDA #$D8       ; Bank: D8
C3/76BC:	99CA35  	STA $35CA,Y    ; Set ptr HB
C3/76BF:	E8      	INX            ; Menu slot +1
C3/76C0:	E01000  	CPX #$0010     ; Done top 16?
C3/76C3:	D0C0    	BNE $7685      ; Loop if not
C3/76C5:	A900    	LDA #$00       ; Zero A
C3/76C7:	48      	PHA            ; Put on stack
C3/76C8:	AB      	PLB            ; Set DB to 0
C3/76C9:	60      	RTS

X positions for candidates in Lineup menu
C3/76CA:	18      	; Slot 1
C3/76CB:	34      	; Slot 2
C3/76CC:	50      	; Slot 3
C3/76CD:	6C      	; Slot 4
C3/76CE:	88      	; Slot 5
C3/76CF:	A4      	; Slot 6
C3/76D0:	C0      	; Slot 7
C3/76D1:	DC      	; Slot 8
C3/76D2:	18      	; Slot 9
C3/76D3:	34      	; Slot 10
C3/76D4:	50      	; Slot 11
C3/76D5:	6C      	; Slot 12
C3/76D6:	88      	; Slot 13
C3/76D7:	A4      	; Slot 14
C3/76D8:	C0      	; Slot 15
C3/76D9:	DC      	; Slot 16

Y positions for candidates in Lineup menu
C3/76DA:	5C      	; Slot 1
C3/76DB:	5C      	; Slot 2
C3/76DC:	5C      	; Slot 3
C3/76DD:	5C      	; Slot 4
C3/76DE:	5C      	; Slot 5
C3/76DF:	5C      	; Slot 6
C3/76E0:	5C      	; Slot 7
C3/76E1:	5C      	; Slot 8
C3/76E2:	78      	; Slot 9
C3/76E3:	78      	; Slot 10
C3/76E4:	78      	; Slot 11
C3/76E5:	78      	; Slot 12
C3/76E6:	78      	; Slot 13
C3/76E7:	78      	; Slot 14
C3/76E8:	78      	; Slot 15
C3/76E9:	78      	; Slot 16

List members by ID and choice, link each menu slot to a party
C3/76EA:	A2B99D  	LDX #$9DB9     ; 7E/9DB9
C3/76ED:	86E7    	STX $E7        ; Set WRAM LBs
C3/76EF:	AD0102  	LDA $0201      ; Event data
C3/76F2:	2907    	AND #$07       ; Group count
C3/76F4:	85E6    	STA $E6        ; Set counter
C3/76F6:	A901    	LDA #$01       ; Party: 1st
C3/76F8:	85E0    	STA $E0        ; Set current
C3/76FA:	A6E7    	LDX $E7        ; WRAM adr LBs
C3/76FC:	8E8121  	STX $2181      ; Set register
C3/76FF:	A600    	LDX $00        ; 1st: Terra
C3/7701:	BD5018  	LDA $1850,X    ; Party info
C3/7704:	2940    	AND #$40       ; Object's off?
C3/7706:	F00D    	BEQ $7715      ; Skip if so
C3/7708:	BD5018  	LDA $1850,X    ; Party info
C3/770B:	2907    	AND #$07       ; Isolate party
C3/770D:	C5E0    	CMP $E0        ; Matches ours?
C3/770F:	D004    	BNE $7715      ; Skip if not
C3/7711:	8A      	TXA            ; Actor slot
C3/7712:	8D8021  	STA $2180      ; Add to list
C3/7715:	E8      	INX            ; Actor slot +1
C3/7716:	E01000  	CPX #$0010     ; Done all 16?
C3/7719:	D0E6    	BNE $7701      ; Loop if not
C3/771B:	A9FF    	LDA #$FF       ; Null value
C3/771D:	8D8021  	STA $2180      ; End party list
C3/7720:	C220    	REP #$20       ; 16-bit A
C3/7722:	A5E7    	LDA $E7        ; WRAM adr LBs
C3/7724:	18      	CLC            ; Prepare ADC
C3/7725:	691000  	ADC #$0010     ; To next party
C3/7728:	85E7    	STA $E7        ; Save changes
C3/772A:	E220    	SEP #$20       ; 8-bit A
C3/772C:	E6E0    	INC $E0        ; Actual party +1
C3/772E:	C6E6    	DEC $E6        ; One less left
C3/7730:	D0C8    	BNE $76FA      ; Loop till last
C3/7732:	203877  	JSR $7738      ; Sort by choice
C3/7735:	4C0278  	JMP $7802      ; Mark all slots

Sort members by player choice, merge into a unified list
C3/7738:	AD0102  	LDA $0201      ; Event data
C3/773B:	2907    	AND #$07       ; Group count
C3/773D:	85E6    	STA $E6        ; Set counter
C3/773F:	A600    	LDX $00        ; 1st: Party 1
C3/7741:	A97E    	LDA #$7E       ; Bank: 7E
C3/7743:	85E9    	STA $E9        ; Set dest HB
C3/7745:	C220    	REP #$20       ; 16-bit A
C3/7747:	BFE677C3	LDA $C377E6,X  ; Party RAM adr
C3/774B:	85E7    	STA $E7        ; Set dest LBs
C3/774D:	BFE877C3	LDA $C377E8,X  ; Source index
C3/7751:	DA      	PHX            ; Save dst index
C3/7752:	AA      	TAX            ; Index source
C3/7753:	E220    	SEP #$20       ; 8-bit A
C3/7755:	20257B  	JSR $7B25      ; Sort party
C3/7758:	FA      	PLX            ; Dst index
C3/7759:	E8      	INX            ; Dst index +1
C3/775A:	E8      	INX            ; Dst index +1
C3/775B:	E8      	INX            ; Dst index +1
C3/775C:	E8      	INX            ; Dst index +1
C3/775D:	C6E6    	DEC $E6        ; One less group
C3/775F:	D0E0    	BNE $7741      ; Loop till last

Fork: Merge sorted lists
C3/7761:	A2999D  	LDX #$9D99     ; 7E/9D99
C3/7764:	8E8121  	STX $2181      ; Set WRAM LBs
C3/7767:	AD0102  	LDA $0201      ; Group count
C3/776A:	297F    	AND #$7F       ; Clear flag
C3/776C:	C901    	CMP #$01       ; One group?
C3/776E:	F066    	BEQ $77D6      ; Branch if so
C3/7770:	C902    	CMP #$02       ; Two groups?
C3/7772:	F04F    	BEQ $77C3      ; Branch if so

Fork: Add groups 1-3
C3/7774:	20C377  	JSR $77C3      ; Add groups 1+2
C3/7777:	A600    	LDX $00        ; Member slot: 1
C3/7779:	BFE19D7E	LDA $7E9DE1,X  ; Actor in slot
C3/777D:	8D8021  	STA $2180      ; Add to list
C3/7780:	E8      	INX            ; Member slot +1
C3/7781:	E00400  	CPX #$0004     ; Done 4 slots?
C3/7784:	D0F3    	BNE $7779      ; Loop if not

Fork: Add group 4 (useless...)
C3/7786:	A600    	LDX $00        ; Member slot: 1
C3/7788:	BFF19D7E	LDA $7E9DF1,X  ; Actor in slot
C3/778C:	8D8021  	STA $2180      ; Add to list
C3/778F:	E8      	INX            ; Member slot +1
C3/7790:	E00400  	CPX #$0004     ; Done 4 slots?
C3/7793:	D0F3    	BNE $7788      ; Loop if not

Fork: Add group 5 (useless...)
C3/7795:	A600    	LDX $00        ; Member slot: 1
C3/7797:	BF019E7E	LDA $7E9E01,X  ; Actor in slot
C3/779B:	8D8021  	STA $2180      ; Add to list
C3/779E:	E8      	INX            ; Member slot +1
C3/779F:	E00400  	CPX #$0004     ; Done 4 slots?
C3/77A2:	D0F3    	BNE $7797      ; Loop if not

Fork: Add group 6 (useless...)
C3/77A4:	A600    	LDX $00        ; Member slot: 1
C3/77A6:	BF119E7E	LDA $7E9E11,X  ; Actor in slot
C3/77AA:	8D8021  	STA $2180      ; Add to list
C3/77AD:	E8      	INX            ; Member slot +1
C3/77AE:	E00400  	CPX #$0004     ; Done 4 slots?
C3/77B1:	D0F3    	BNE $77A6      ; Loop if not

Fork: Add group 7 (useless...)
C3/77B3:	A600    	LDX $00        ; Member slot: 1
C3/77B5:	BF219E7E	LDA $7E9E21,X  ; Actor in slot
C3/77B9:	8D8021  	STA $2180      ; Add to list
C3/77BC:	E8      	INX            ; Member slot +1
C3/77BD:	E00400  	CPX #$0004     ; Done 4 slots?
C3/77C0:	D0F3    	BNE $77B5      ; Loop if not
C3/77C2:	60      	RTS

Fork: Add groups 1 and 2
C3/77C3:	20D677  	JSR $77D6      ; Add group 1
C3/77C6:	A600    	LDX $00        ; Member slot: 1
C3/77C8:	BFD19D7E	LDA $7E9DD1,X  ; Actor in slot
C3/77CC:	8D8021  	STA $2180      ; Add to list
C3/77CF:	E8      	INX            ; Member slot +1
C3/77D0:	E00400  	CPX #$0004     ; Done 4 slots?
C3/77D3:	D0F3    	BNE $77C8      ; Loop if not
C3/77D5:	60      	RTS

Fork: Add group 1
C3/77D6:	A600    	LDX $00        ; Member slot: 1
C3/77D8:	BFC19D7E	LDA $7E9DC1,X  ; Actor in slot
C3/77DC:	8D8021  	STA $2180      ; Add to list
C3/77DF:	E8      	INX            ; Member slot +1
C3/77E0:	E00400  	CPX #$0004     ; Done 4 slots?
C3/77E3:	D0F3    	BNE $77D8      ; Loop if not
C3/77E5:	60      	RTS

Source and destination for sorting a party (ID -> choice)
C3/77E6:	C19D 3000	; P1: $9DB9 -> $9DC1
C3/77EA:	D19D 4000	; P2: $9DC9 -> $9DD1
C3/77EE:	E19D 5000	; P3: $9DD9 -> $9DE1
C3/77F2:	F19D 6000	; P4: $9DE9 -> $9DF1 (unused)
C3/77F6:	019E 7000	; P5: $9DF9 -> $9E01 (unused)
C3/77FA:	119E 8000	; P6: $9E09 -> $9E11 (unused)
C3/77FE:	219E 9000	; P7: $9E19 -> $9E21 (unused)

Assign a party number to each slot in Lineup menu
C3/7802:	A2519E  	LDX #$9E51     ; 7E/9E51
C3/7805:	8E8121  	STX $2181      ; Set WRAM LBs
C3/7808:	A910    	LDA #$10       ; Candidates: 16
C3/780A:	9C8021  	STZ $2180      ; Slot: No party
C3/780D:	3A      	DEC A          ; One less slot
C3/780E:	D0FA    	BNE $780A      ; Loop till last
C3/7810:	AD0102  	LDA $0201      ; Event data
C3/7813:	2907    	AND #$07       ; Group count
C3/7815:	C901    	CMP #$01       ; One group?
C3/7817:	F020    	BEQ $7839      ; Branch if so
C3/7819:	C902    	CMP #$02       ; Two groups?
C3/781B:	F021    	BEQ $783E      ; Branch if so
C3/781D:	203E78  	JSR $783E      ; Do group 1+2
C3/7820:	A903    	LDA #$03       ; Group: 3
C3/7822:	204678  	JSR $7846      ; Mark 4 slots
C3/7825:	A904    	LDA #$04       ; Group: 4...
C3/7827:	204678  	JSR $7846      ; Mark 4 slots
C3/782A:	A905    	LDA #$05       ; Group: 5...
C3/782C:	204678  	JSR $7846      ; Mark 4 slots
C3/782F:	A906    	LDA #$06       ; Group: 6...
C3/7831:	204678  	JSR $7846      ; Mark 4 slots
C3/7834:	A907    	LDA #$07       ; Group: 7...
C3/7836:	4C4678  	JMP $7846      ; Mark 4 slots

Fork: 1 group
C3/7839:	A901    	LDA #$01       ; Group: 1
C3/783B:	4C4678  	JMP $7846      ; Mark 4 slots

Fork: 2 groups
C3/783E:	203978  	JSR $7839      ; Do group 1
C3/7841:	A902    	LDA #$02       ; Group: 2
C3/7843:	4C4678  	JMP $7846      ; ...
C3/7846:	8D8021  	STA $2180      ; Mark slot A
C3/7849:	8D8021  	STA $2180      ; Mark slot B
C3/784C:	8D8021  	STA $2180      ; Mark slot C
C3/784F:	8D8021  	STA $2180      ; Mark slot D
C3/7852:	60      	RTS

Create all party members in Lineup menu
C3/7853:	AD0102  	LDA $0201      ; Event data
C3/7856:	2907    	AND #$07       ; Group count
C3/7858:	85E6    	STA $E6        ; Set counter
C3/785A:	A2C19D  	LDX #$9DC1     ; 7E/9DC1
C3/785D:	86F3    	STX $F3        ; Set src LBs
C3/785F:	A97E    	LDA #$7E       ; Bank: 7E
C3/7861:	85F5    	STA $F5        ; Set src HB
C3/7863:	AD1242  	LDA $4212      ; PPU status
C3/7866:	2940    	AND #$40       ; H-Blank?
C3/7868:	F0F9    	BEQ $7863      ; Loop if not
C3/786A:	A599    	LDA $99        ; Always 0...
C3/786C:	8D1B21  	STA $211B      ; Set matrix A LB
C3/786F:	9C1B21  	STZ $211B      ; Clear HB
C3/7872:	A9B0    	LDA #$B0       ; 176
C3/7874:	8D1C21  	STA $211C      ; Set matrix B
C3/7877:	8D1C21  	STA $211C      ; ...
C3/787A:	AE3421  	LDX $2134      ; Product LB
C3/787D:	86E4    	STX $E4        ; Set base X

Fork: Handle current party
C3/787F:	A600    	LDX $00        ; Member slot: 1
C3/7881:	7B      	TDC            ; Clear A
C3/7882:	9B      	TXY            ; Member slot
C3/7883:	B7F3    	LDA [$F3],Y    ; Actor in slot
C3/7885:	85F6    	STA $F6        ; ...
C3/7887:	3037    	BMI $78C0      ; Skip if nobody
C3/7889:	DA      	PHX            ; Save slot
C3/788A:	48      	PHA            ; Save actor
C3/788B:	A900    	LDA #$00       ; ...
C3/788D:	48      	PHA            ; ...
C3/788E:	AB      	PLB            ; ...
C3/788F:	A902    	LDA #$02       ; Min slot: 16
C3/7891:	A0427B  	LDY #$7B42     ; C3/7B42
C3/7894:	207311  	JSR $1173      ; Queue OAM fn
C3/7897:	9B      	TXY            ; Queue index
C3/7898:	7B      	TDC            ; Clear A
C3/7899:	68      	PLA            ; Actor in slot
C3/789A:	9FC9357E	STA $7E35C9,X  ; Put in queue
C3/789E:	20EB78  	JSR $78EB      ; Set anim ptr
C3/78A1:	FA      	PLX            ; Member slot
C3/78A2:	7B      	TDC            ; Clear A
C3/78A3:	BFE378C3	LDA $C378E3,X  ; Relative X
C3/78A7:	C221    	REP #$21       ; 16-bit A; C-
C3/78A9:	65E4    	ADC $E4        ; Add base X
C3/78AB:	99CA33  	STA $33CA,Y    ; Set ally's X
C3/78AE:	E220    	SEP #$20       ; 8-bit A
C3/78B0:	BFE778C3	LDA $C378E7,X  ; Y position
C3/78B4:	994A34  	STA $344A,Y    ; Set ally's
C3/78B7:	7B      	TDC            ; Clear A
C3/78B8:	994B34  	STA $344B,Y    ; No use...
C3/78BB:	A9D8    	LDA #$D8       ; Bank: D8
C3/78BD:	99CA35  	STA $35CA,Y    ; Set ptr HB
C3/78C0:	E8      	INX            ; Member slot +1
C3/78C1:	E00400  	CPX #$0004     ; Done all 4?
C3/78C4:	D0BB    	BNE $7881      ; Loop if not

Fork: Handle next party
C3/78C6:	C220    	REP #$20       ; 16-bit A
C3/78C8:	A5F3    	LDA $F3        ; Party list adr
C3/78CA:	18      	CLC            ; Prepare ADC
C3/78CB:	691000  	ADC #$0010     ; To next party
C3/78CE:	85F3    	STA $F3        ; Save changes
C3/78D0:	A5E4    	LDA $E4        ; Base X pos
C3/78D2:	18      	CLC            ; Prepare ADC
C3/78D3:	695000  	ADC #$0050     ; Go 80 px right
C3/78D6:	85E4    	STA $E4        ; Save changes
C3/78D8:	E220    	SEP #$20       ; 8-bit A
C3/78DA:	C6E6    	DEC $E6        ; One less group
C3/78DC:	D0A1    	BNE $787F      ; Loop till last
C3/78DE:	A900    	LDA #$00       ; Clear A
C3/78E0:	48      	PHA            ; Put on stack
C3/78E1:	AB      	PLB            ; Set DB to 0
C3/78E2:	60      	RTS

Relative X positions for party members in Lineup menu
C3/78E3:	18      	; NW
C3/78E4:	18      	; SW
C3/78E5:	38      	; NE
C3/78E6:	38      	; SE

Y positions for party members in Lineup menu
C3/78E7:	9C      	; NW
C3/78E8:	B8      	; SW
C3/78E9:	9C      	; NE
C3/78EA:	B8      	; SE

Load pointer to actor's animation table
C3/78EB:	0A      	ASL A          ; Actor x2
C3/78EC:	AA      	TAX            ; Index it
C3/78ED:	C220    	REP #$20       ; 16-bit A
C3/78EF:	BF6969C3	LDA $C36969,X  ; Actor address
C3/78F3:	AA      	TAX            ; Index it
C3/78F4:	E220    	SEP #$20       ; 8-bit A
C3/78F6:	7B      	TDC            ; Clear A
C3/78F7:	BD0100  	LDA $0001,X    ; Sprite set
C3/78FA:	0A      	ASL A          ; Double it
C3/78FB:	AA      	TAX            ; Index it
C3/78FC:	A97E    	LDA #$7E       ; Bank: 7E
C3/78FE:	48      	PHA            ; Put on stack
C3/78FF:	AB      	PLB            ; Set DB to 7E
C3/7900:	C220    	REP #$20       ; 16-bit A
C3/7902:	BF17E9D8	LDA $D8E917,X  ; Anim table ptr
C3/7906:	99C932  	STA $32C9,Y    ; Set sprite's
C3/7909:	E220    	SEP #$20       ; 8-bit A
C3/790B:	60      	RTS

Establish locked actor slots in Lineup menu
C3/790C:	A28DAC  	LDX #$AC8D     ; 7E/AC8D
C3/790F:	8E8121  	STX $2181      ; Set WRAM LBs
C3/7912:	7B      	TDC            ; Clear A
C3/7913:	AA      	TAX            ; Menu slot: 1
C3/7914:	DA      	PHX            ; Save menu slot
C3/7915:	7B      	TDC            ; Clear A
C3/7916:	BF899D7E	LDA $7E9D89,X  ; Actor in slot
C3/791A:	3017    	BMI $7933      ; Unlock if none
C3/791C:	C220    	REP #$20       ; 16-bit A
C3/791E:	0A      	ASL A          ; Double it
C3/791F:	AA      	TAX            ; Index it
C3/7920:	BF0F7CC3	LDA $C37C0F,X  ; Actor slot bit
C3/7924:	85E7    	STA $E7        ; Memorize it
C3/7926:	AD0202  	LDA $0202      ; Forced actors
C3/7929:	25E7    	AND $E7        ; Slot holds one?
C3/792B:	E220    	SEP #$20       ; 8-bit A
C3/792D:	F004    	BEQ $7933      ; Unlock if not
C3/792F:	A9FF    	LDA #$FF       ; Slot: Locked
C3/7931:	8001    	BRA $7934      ; Skip a line
C3/7933:	7B      	TDC            ; Slot: Unlocked
C3/7934:	8D8021  	STA $2180      ; Set slot status
C3/7937:	FA      	PLX            ; Current slot
C3/7938:	E8      	INX            ; Point to next
C3/7939:	E02C00  	CPX #$002C     ; Done all slots?
C3/793C:	D0D6    	BNE $7914      ; Loop if not
C3/793E:	60      	RTS

Initialize and load portrait for Lineup menu
C3/793F:	6428    	STZ $28        ; Portr slot: 1
C3/7941:	20E57A  	JSR $7AE5      ; Init object
C3/7944:	A92F    	LDA #$2F       ; Y: 47
C3/7946:	9F4A347E	STA $7E344A,X  ; Set object's
C3/794A:	20AC14  	JSR $14AC      ; Upload graphics
C3/794D:	202F7C  	JSR $7C2F      ; Queue updating
C3/7950:	4CAE7C  	JMP $7CAE      ; Load palette

Draw actor info in Lineup menu
C3/7953:	20AC79  	JSR $79AC      ; Erase BG1 text
C3/7956:	7B      	TDC            ; ...
C3/7957:	A54B    	LDA $4B        ; Cursor slot
C3/7959:	18      	CLC            ; Prepare ADC
C3/795A:	654A    	ADC $4A        ; +16 if in party
C3/795C:	655A    	ADC $5A        ; Always 0...
C3/795E:	AA      	TAX            ; Index sum
C3/795F:	BF899D7E	LDA $7E9D89,X  ; Actor in slot
C3/7963:	3046    	BMI $79AB      ; Exit if nobody
C3/7965:	85C9    	STA $C9        ; Memorize it
C3/7967:	0A      	ASL A          ; Double it
C3/7968:	AA      	TAX            ; Index it
C3/7969:	C220    	REP #$20       ; 16-bit A
C3/796B:	BF6969C3	LDA $C36969,X  ; Actor's address
C3/796F:	8567    	STA $67        ; Memorize it
C3/7971:	E220    	SEP #$20       ; 8-bit A
C3/7973:	A924    	LDA #$24       ; Palette 1
C3/7975:	8529    	STA $29        ; Color: Blue
C3/7977:	A2C979  	LDX #$79C9     ; Text ptrs loc
C3/797A:	A00600  	LDY #$0006     ; Strings: 3
C3/797D:	20BA69  	JSR $69BA      ; Draw "LV/HP/MP"
C3/7980:	A05B3A  	LDY #$3A5B     ; Class/KO pos
C3/7983:	A24830  	LDX #$3048     ; Icon position
C3/7986:	A901    	LDA #$01       ; Anim mode: 1
C3/7988:	8548    	STA $48        ; Set for icons
C3/798A:	202734  	JSR $3427      ; Display status
C3/798D:	A0DB3A  	LDY #$3ADB     ; Text position
C3/7990:	20CF34  	JSR $34CF      ; Draw actor name
C3/7993:	A05B3B  	LDY #$3B5B     ; Text position
C3/7996:	20E634  	JSR $34E6      ; Draw held esper
C3/7999:	A0DE79  	LDY #$79DE     ; Text pointer
C3/799C:	20F902  	JSR $02F9      ; Draw HP's "/"
C3/799F:	A0E279  	LDY #$79E2     ; Text pointer
C3/79A2:	20F902  	JSR $02F9      ; Draw MP's "/"
C3/79A5:	A2E679  	LDX #$79E6     ; Coords tbl ptr
C3/79A8:	206C0C  	JSR $0C6C      ; Draw LV, HP, MP
C3/79AB:	60      	RTS

Erase actor info on BG1 in Lineup menu
C3/79AC:	A2C001  	LDX #$01C0     ; 7E/3A09
C3/79AF:	C220    	REP #$20       ; 16-bit A
C3/79B1:	7B      	TDC            ; Clear A
C3/79B2:	A500    	LDA $00        ; ...
C3/79B4:	A06000  	LDY #$0060     ; Tiles: 192
C3/79B7:	9F49387E	STA $7E3849,X  ; Clear tile
C3/79BB:	E8      	INX            ; Index +1
C3/79BC:	E8      	INX            ; Index +1
C3/79BD:	9F49387E	STA $7E3849,X  ; Clear tile
C3/79C1:	E8      	INX            ; Index +1
C3/79C2:	E8      	INX            ; Index +1
C3/79C3:	88      	DEY            ; 2 less tiles
C3/79C4:	D0F1    	BNE $79B7      ; Loop till 0
C3/79C6:	E220    	SEP #$20       ; 8-bit A
C3/79C8:	60      	RTS

Text pointers for Lineup menu
C3/79C9:	CF79    	; LV
C3/79CB:	D479    	; HP
C3/79CD:	D979    	; MP

Positioned text for Lineup menu
C3/79CF:	6D3A 8B9500	; LV
C3/79D4:	ED3A 878F00	; HP
C3/79D9:	6D3B 8C8F00	; MP
C3/79DE:	FB3A C000	; /
C3/79E2:	7B3B C000	; /

Tilemap pointers for stats in Lineup menu
C3/79E6:	773A    	; LV
C3/79E8:	F33A    	; HP
C3/79EA:	FD3A    	; Max HP
C3/79EC:	733B    	; MP
C3/79EE:	7D3B    	; Max MP

67: Queue fade-out for Lineup menu
C3/79F0:	204F30  	JSR $304F      ; Queue fade-out
C3/79F3:	A00800  	LDY #$0008     ; Frames: 8
C3/79F6:	8420    	STY $20        ; Set fade timer
C3/79F8:	A968    	LDA #$68       ; C3/7A0E
C3/79FA:	8526    	STA $26        ; Next: Wait
C3/79FC:	4CB875  	JMP $75B8      ; Update char info

66: Queue fade-in for Lineup menu
C3/79FF:	205630  	JSR $3056      ; Queue fade-in
C3/7A02:	A00800  	LDY #$0008     ; Frames: 8
C3/7A05:	8420    	STY $20        ; Set fade timer
C3/7A07:	A968    	LDA #$68       ; C3/7A0E
C3/7A09:	8526    	STA $26        ; Next: Wait
C3/7A0B:	4CB875  	JMP $75B8      ; Update char info

68: Wait while Lineup menu fades in or out
C3/7A0E:	A420    	LDY $20        ; Timer expired?
C3/7A10:	D004    	BNE $7A16      ; Branch if not
C3/7A12:	A527    	LDA $27        ; Queued command
C3/7A14:	8526    	STA $26        ; Execute it next
C3/7A16:	4CB875  	JMP $75B8      ; Update char info

Update arrow for gear data menu
C3/7A19:	AA      	TAX            ; Index mode
C3/7A1A:	7C1D7A  	JMP ($7A1D,X)  ; Handle mode

Jump table for the above
C3/7A1D:	217A    	; Initialize arrow
C3/7A1F:	3E7A    	; Sustain arrow

Mode 0: Initialize arrow
C3/7A21:	A62D    	LDX $2D        ; Queue index
C3/7A23:	C220    	REP #$20       ; 16-bit A
C3/7A25:	A96FEC  	LDA #$EC6F     ; Anim table ptr
C3/7A28:	9DC932  	STA $32C9,X    ; Set sprite's
C3/7A2B:	A90800  	LDA #$0008     ; X: 8
C3/7A2E:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/7A31:	E220    	SEP #$20       ; 8-bit A
C3/7A33:	A9D8    	LDA #$D8       ; Bank: D8
C3/7A35:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/7A38:	FE4936  	INC $3649,X    ; Mode +1
C3/7A3B:	200612  	JSR $1206      ; Set pose timer

Mode 1: Sustain arrow
C3/7A3E:	A42D    	LDY $2D        ; Queue index
C3/7A40:	A599    	LDA $99        ; Arrow status
C3/7A42:	F007    	BEQ $7A4B      ; Hide if bogus
C3/7A44:	3017    	BMI $7A5D      ; Delete if off
C3/7A46:	7B      	TDC            ; Clear A
C3/7A47:	A902    	LDA #$02       ; Sprite: Normal
C3/7A49:	8001    	BRA $7A4C      ; Skip a line
C3/7A4B:	7B      	TDC            ; Sprite: Blank
C3/7A4C:	AA      	TAX            ; Index A
C3/7A4D:	C220    	REP #$20       ; 16-bit A
C3/7A4F:	BF6BECD8	LDA $D8EC6B,X  ; Anim table ptr
C3/7A53:	99C932  	STA $32C9,Y    ; Set sprite's
C3/7A56:	E220    	SEP #$20       ; ...
C3/7A58:	202112  	JSR $1221      ; Define OAM
C3/7A5B:	38      	SEC            ; Set to requeue
C3/7A5C:	60      	RTS            ; Exit
C3/7A5D:	18      	CLC            ; Set to dequeue
C3/7A5E:	60      	RTS

Update Lineup or Colosseum candidate, or enemy Shadow
C3/7A5F:	AA      	TAX            ; Index mode
C3/7A60:	7C637A  	JMP ($7A63,X)  ; Handle mode

Jump table for the above
C3/7A63:	677A    	; Initialize sprite
C3/7A65:	787A    	; Sustain sprite

Mode 0: Initialize sprite
C3/7A67:	A901    	LDA #$01       ; Hide actors: N
C3/7A69:	0447    	TSB $47        ; Set menu flag
C3/7A6B:	A62D    	LDX $2D        ; Queue index
C3/7A6D:	FE4936  	INC $3649,X    ; Mode +1
C3/7A70:	A901    	LDA #$01       ; ...
C3/7A72:	200612  	JSR $1206      ; Set pose timer
C3/7A75:	20AE7B  	JSR $7BAE      ; No arrow...

Mode 1: Sustain sprite
C3/7A78:	A547    	LDA $47        ; Menu flags
C3/7A7A:	2901    	AND #$01       ; Remove actors?
C3/7A7C:	F007    	BEQ $7A85      ; Delete if so
C3/7A7E:	A62D    	LDX $2D        ; Queue index
C3/7A80:	202112  	JSR $1221      ; Define OAM
C3/7A83:	38      	SEC            ; Set to requeue
C3/7A84:	60      	RTS            ; Exit
C3/7A85:	18      	CLC            ; Set to dequeue
C3/7A86:	60      	RTS

69: Erase warning in Lineup menu after delay
C3/7A87:	A520    	LDA $20        ; Delay expired?
C3/7A89:	D007    	BNE $7A92      ; Branch if not
C3/7A8B:	A92D    	LDA #$2D       ; C3/7168
C3/7A8D:	8526    	STA $26        ; Next: Choice 1
C3/7A8F:	206275  	JSR $7562      ; Draw "Form..."
C3/7A92:	4CB875  	JMP $75B8      ; Update char info

Positioned text, "Form   group(s).      "
C3/7A95:	1D39 85A8ABA6FFFFFFA0ABA8AEA9CBACCCC5FFFFFFFFFFFF00

Positioned text, "Lineup"
C3/7AAE:	0D39 8BA2A79EAEA900

Positioned text, "You need   group(s)!"
C3/7AB7:	1D39 98A8AEFFA79E9E9DFFFFFFA0ABA8AEA9CBACCCBE00

Positioned text, "No one there!       "
C3/7ACE:	1D39 8DA8FFA8A79EFFADA19EAB9EBEFFFFFFFFFFFFFF00

Create portrait for Lineup menu
C3/7AE5:	A903    	LDA #$03       ; Min slot: 24
C3/7AE7:	A0120B  	LDY #$0B12     ; C3/0B12
C3/7AEA:	207311  	JSR $1173      ; Queue OAM fn
C3/7AED:	8A      	TXA            ; Queue index
C3/7AEE:	8560    	STA $60        ; Set sprite's
C3/7AF0:	8B      	PHB            ; Save DB
C3/7AF1:	A97E    	LDA #$7E       ; Bank: 7E
C3/7AF3:	48      	PHA            ; Put on stack
C3/7AF4:	AB      	PLB            ; Set DB to 7E
C3/7AF5:	C220    	REP #$20       ; 16-bit A
C3/7AF7:	A91A00  	LDA #$001A     ; X: 26
C3/7AFA:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/7AFD:	E220    	SEP #$20       ; 8-bit A
C3/7AFF:	7B      	TDC            ; ...
C3/7B00:	A528    	LDA $28        ; Portrait slot
C3/7B02:	200E7B  	JSR $7B0E      ; Load anim ptr
C3/7B05:	7B      	TDC            ; Clear A
C3/7B06:	9D4B34  	STA $344B,X    ; No use...
C3/7B09:	200612  	JSR $1206      ; Set pose timer
C3/7B0C:	AB      	PLB            ; Restore DB
C3/7B0D:	60      	RTS

Load animation table address for portrait
C3/7B0E:	DA      	PHX            ; Queue index
C3/7B0F:	DA      	PHX            ; Push again
C3/7B10:	0A      	ASL A          ; Port slot x2
C3/7B11:	AA      	TAX            ; Index it
C3/7B12:	C220    	REP #$20       ; 16-bit A
C3/7B14:	BFE90AC3	LDA $C30AE9,X  ; Anim table ptr
C3/7B18:	7A      	PLY            ; Queue index
C3/7B19:	99C932  	STA $32C9,Y    ; Set sprite's
C3/7B1C:	E220    	SEP #$20       ; 8-bit A
C3/7B1E:	A9C3    	LDA #$C3       ; Bank: C3
C3/7B20:	99CA35  	STA $35CA,Y    ; Set ptr HB
C3/7B23:	FA      	PLX            ; Queue index
C3/7B24:	60      	RTS

Sort members by actual order rather than actor slot
C3/7B25:	7B      	TDC            ; Clear A
C3/7B26:	BF899D7E	LDA $7E9D89,X  ; Actor slot
C3/7B2A:	85E1    	STA $E1        ; Memorize it
C3/7B2C:	3013    	BMI $7B41      ; Exit if none
C3/7B2E:	DA      	PHX            ; List slot
C3/7B2F:	AA      	TAX            ; Actor slot
C3/7B30:	BD5018  	LDA $1850,X    ; Party info
C3/7B33:	2918    	AND #$18       ; Roster slot
C3/7B35:	4A      	LSR A          ; Put in b2-b3
C3/7B36:	4A      	LSR A          ; Put in b1-b2
C3/7B37:	4A      	LSR A          ; Now 0-3
C3/7B38:	A8      	TAY            ; Index it
C3/7B39:	A5E1    	LDA $E1        ; Actor slot
C3/7B3B:	97E7    	STA [$E7],Y    ; To new list
C3/7B3D:	FA      	PLX            ; List slot
C3/7B3E:	E8      	INX            ; List slot +1
C3/7B3F:	80E4    	BRA $7B25      ; Do next slot
C3/7B41:	60      	RTS

Update conditional actor-related sprite
C3/7B42:	AA      	TAX            ; Index mode
C3/7B43:	7C467B  	JMP ($7B46,X)  ; Handle mode

Jump table for the above
C3/7B46:	527B    	; Initialize sprite V1
C3/7B48:	667B    	; Initialize sprite V2
C3/7B4A:	727B    	; Initialize sprite V3
C3/7B4C:	7E7B    	; Sustain sprite V1
C3/7B4E:	8D7B    	; Sustain sprite V2
C3/7B50:	A17B    	; Sustain sprite V3

Mode 0: Init Lineup member, non-Lineup status icon, or arrow under actor; create arrow under forced member
C3/7B52:	A901    	LDA #$01       ; Ax like OBJs: N
C3/7B54:	0447    	TSB $47        ; Set menu flag
C3/7B56:	A62D    	LDX $2D        ; Queue index
C3/7B58:	A903    	LDA #$03       ; Mode: 3
C3/7B5A:	9D4936  	STA $3649,X    ; Set sprite's
C3/7B5D:	200612  	JSR $1206      ; Set pose timer
C3/7B60:	7B      	TDC            ; Lineup member: Y
C3/7B61:	20AE7B  	JSR $7BAE      ; Add Lineup arrow
C3/7B64:	8018    	BRA $7B7E      ; Define OAM

Mode 1: Init Colosseum challenger or Lineup status icon
C3/7B66:	A62D    	LDX $2D        ; Queue index
C3/7B68:	A904    	LDA #$04       ; Mode: 4
C3/7B6A:	9D4936  	STA $3649,X    ; Set sprite's
C3/7B6D:	200612  	JSR $1206      ; Set pose timer
C3/7B70:	801B    	BRA $7B8D      ; Define OAM

Mode 2: Init unknown sprite (unused)
C3/7B72:	A62D    	LDX $2D        ; Queue index
C3/7B74:	A905    	LDA #$05       ; Mode: 5
C3/7B76:	9D4936  	STA $3649,X    ; Set sprite's
C3/7B79:	200612  	JSR $1206      ; Set pose timer
C3/7B7C:	8023    	BRA $7BA1      ; Define OAM

Mode 3: Sustain Lineup member, non-Lineup status icon, or arrow under actor
C3/7B7E:	A547    	LDA $47        ; Menu flags
C3/7B80:	2901    	AND #$01       ; Ax like objects?
C3/7B82:	F007    	BEQ $7B8B      ; Delete if so
C3/7B84:	A62D    	LDX $2D        ; Queue index
C3/7B86:	202112  	JSR $1221      ; Define OAM
C3/7B89:	38      	SEC            ; Set to requeue
C3/7B8A:	60      	RTS            ; Exit
C3/7B8B:	18      	CLC            ; Set to dequeue
C3/7B8C:	60      	RTS

Mode 4: Sustain Colosseum challenger or Lineup status icon
C3/7B8D:	A547    	LDA $47        ; Menu flags
C3/7B8F:	2902    	AND #$02       ; Temp sprite?
C3/7B91:	F007    	BEQ $7B9A      ; Branch if not
C3/7B93:	A62D    	LDX $2D        ; Queue index
C3/7B95:	202112  	JSR $1221      ; Define OAM
C3/7B98:	18      	CLC            ; Set to dequeue
C3/7B99:	60      	RTS            ; Exit
C3/7B9A:	A62D    	LDX $2D        ; Queue index
C3/7B9C:	202112  	JSR $1221      ; Define OAM
C3/7B9F:	38      	SEC            ; Set to requeue
C3/7BA0:	60      	RTS

Mode 5: Sustain unknown sprite (unused)
C3/7BA1:	A547    	LDA $47        ; Menu flags
C3/7BA3:	2904    	AND #$04       ; Ax like objects?
C3/7BA5:	F0F3    	BEQ $7B9A      ; Branch if not
C3/7BA7:	A62D    	LDX $2D        ; Queue index
C3/7BA9:	202112  	JSR $1221      ; Define OAM
C3/7BAC:	18      	CLC            ; Set to dequeue
C3/7BAD:	60      	RTS

Create large arrow under actor if forced into party
C3/7BAE:	85E6    	STA $E6        ; Save pose timer
C3/7BB0:	AD0002  	LDA $0200      ; Menu number
C3/7BB3:	C904    	CMP #$04       ; Lineup menu?
C3/7BB5:	D057    	BNE $7C0E      ; Exit if not
C3/7BB7:	A62D    	LDX $2D        ; Queue index
C3/7BB9:	7B      	TDC            ; Clear A
C3/7BBA:	BDC935  	LDA $35C9,X    ; Actor in slot
C3/7BBD:	304F    	BMI $7C0E      ; Exit if arrow
C3/7BBF:	0A      	ASL A          ; Double it
C3/7BC0:	C220    	REP #$20       ; 16-bit A
C3/7BC2:	AA      	TAX            ; Index it
C3/7BC3:	BF0F7CC3	LDA $C37C0F,X  ; Actor slot bit
C3/7BC7:	85E7    	STA $E7        ; Memorize it
C3/7BC9:	AD0202  	LDA $0202      ; Forced actors
C3/7BCC:	25E7    	AND $E7        ; Includes ours?
C3/7BCE:	E220    	SEP #$20       ; 8-bit A
C3/7BD0:	F03C    	BEQ $7C0E      ; Exit if not
C3/7BD2:	A900    	LDA #$00       ; Zero A
C3/7BD4:	48      	PHA            ; Put on stack
C3/7BD5:	AB      	PLB            ; Set DB to 0
C3/7BD6:	A5E6    	LDA $E6        ; Party member?
C3/7BD8:	D005    	BNE $7BDF      ; Branch if not
C3/7BDA:	A0427B  	LDY #$7B42     ; C3/7B42
C3/7BDD:	8003    	BRA $7BE2      ; Skip a line
C3/7BDF:	A05F7A  	LDY #$7A5F     ; C3/7A5F
C3/7BE2:	A903    	LDA #$03       ; Min slot: 24
C3/7BE4:	207311  	JSR $1173      ; Queue OAM fn
C3/7BE7:	A97E    	LDA #$7E       ; Bank: 7E
C3/7BE9:	48      	PHA            ; Put on stack
C3/7BEA:	AB      	PLB            ; Set DB to 7E
C3/7BEB:	A9FF    	LDA #$FF       ; Actor: None
C3/7BED:	9DC935  	STA $35C9,X    ; For C3/7BBD
C3/7BF0:	BC4A37  	LDY $374A,X    ; Actor's index
C3/7BF3:	C220    	REP #$20       ; 16-bit A
C3/7BF5:	B9CA33  	LDA $33CA,Y    ; Actor's X
C3/7BF8:	9DCA33  	STA $33CA,X    ; Set arrow's
C3/7BFB:	B94A34  	LDA $344A,Y    ; Actor's Y
C3/7BFE:	9D4A34  	STA $344A,X    ; Set arrow's
C3/7C01:	A9A9EB  	LDA #$EBA9     ; Anim table ptr
C3/7C04:	9DC932  	STA $32C9,X    ; Set arrow's
C3/7C07:	E220    	SEP #$20       ; 8-bit A
C3/7C09:	A9D8    	LDA #$D8       ; Bank: D8
C3/7C0B:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/7C0E:	60      	RTS

Bitfield for actor slots
C3/7C0F:	0100    	; Terra
C3/7C11:	0200    	; Locke
C3/7C13:	0400    	; Cyan
C3/7C15:	0800    	; Shadow
C3/7C17:	1000    	; Edgar
C3/7C19:	2000    	; Sabin
C3/7C1B:	4000    	; Celes
C3/7C1D:	8000    	; Strago
C3/7C1F:	0001    	; Relm
C3/7C21:	0002    	; Setzer
C3/7C23:	0004    	; Mog
C3/7C25:	0008    	; Gau
C3/7C27:	0010    	; Gogo
C3/7C29:	0020    	; Umaro
C3/7C2B:	0040    	; Guest 1
C3/7C2D:	0080    	; Guest 2

Set to upload portrait for Lineup menu
C3/7C2F:	A00026  	LDY #$2600     ; $2600
C3/7C32:	841B    	STY $1B        ; Set VRAM ptr
C3/7C34:	A02003  	LDY #$0320     ; Bytes: 800
C3/7C37:	8419    	STY $19        ; Set data size
C3/7C39:	7B      	TDC            ; Clear A
C3/7C3A:	A54B    	LDA $4B        ; Cursor slot
C3/7C3C:	18      	CLC            ; Prepare ADC
C3/7C3D:	654A    	ADC $4A        ; +16 if on party
C3/7C3F:	655A    	ADC $5A        ; Always 0...
C3/7C41:	AA      	TAX            ; Index sum
C3/7C42:	BF899D7E	LDA $7E9D89,X  ; Actor in slot
C3/7C46:	305C    	BMI $7CA4      ; Blank if none
C3/7C48:	8024    	BRA $7C6E      ; Set source

Set to upload portrait A for Lineup group 5-8 (unused)
C3/7C4A:	A00026  	LDY #$2600     ; $2600
C3/7C4D:	841B    	STY $1B        ; Set VRAM ptr
C3/7C4F:	800E    	BRA $7C5F      ; Set source

Set to upload portrait B for Lineup group 5-8 (unused)
C3/7C51:	A00028  	LDY #$2800     ; $2800
C3/7C54:	841B    	STY $1B        ; Set VRAM ptr
C3/7C56:	8007    	BRA $7C5F      ; Set source

Set to delete portrait B for Lineup group 5-8 (unused)
C3/7C58:	A00028  	LDY #$2800     ; $2800
C3/7C5B:	841B    	STY $1B        ; Set VRAM ptr
C3/7C5D:	8045    	BRA $7CA4      ; Set source

Fork: Set source for portrait B (unused part)
C3/7C5F:	A02003  	LDY #$0320     ; Bytes: 800
C3/7C62:	8419    	STY $19        ; Set data size
C3/7C64:	7B      	TDC            ; Clear A
C3/7C65:	A54B    	LDA $4B        ; Cursor slot
C3/7C67:	AA      	TAX            ; Index it
C3/7C68:	BFA99D7E	LDA $7E9DA9,X  ; Actor in slot
C3/7C6C:	3036    	BMI $7CA4      ; Blank if none
C3/7C6E:	0A      	ASL A          ; Double it
C3/7C6F:	AA      	TAX            ; Index it
C3/7C70:	C220    	REP #$20       ; 16-bit A
C3/7C72:	BF6969C3	LDA $C36969,X  ; Actor address
C3/7C76:	A8      	TAY            ; Index it
C3/7C77:	7B      	TDC            ; Clear A
C3/7C78:	E220    	SEP #$20       ; 8-bit A
C3/7C7A:	B91400  	LDA $0014,Y    ; Status
C3/7C7D:	2920    	AND #$20       ; Imp?
C3/7C7F:	F004    	BEQ $7C85      ; Branch if not
C3/7C81:	A90F    	LDA #$0F       ; Use Imp image
C3/7C83:	800A    	BRA $7C8F      ; Ignore actor
C3/7C85:	B90000  	LDA $0000,Y    ; Actor
C3/7C88:	C901    	CMP #$01       ; Locke?
C3/7C8A:	F003    	BEQ $7C8F      ; Branch if so
C3/7C8C:	B90100  	LDA $0001,Y    ; Graphics set
C3/7C8F:	C220    	REP #$20       ; 16-bit A
C3/7C91:	0A      	ASL A          ; Double it
C3/7C92:	AA      	TAX            ; Index it
C3/7C93:	BF1B6FC3	LDA $C36F1B,X  ; GFX pointer
C3/7C97:	18      	CLC            ; ...
C3/7C98:	69001D  	ADC #$1D00     ; Add base adr
C3/7C9B:	851D    	STA $1D        ; Set src LBs
C3/7C9D:	E220    	SEP #$20       ; 8-bit A
C3/7C9F:	A9ED    	LDA #$ED       ; Bank: ED
C3/7CA1:	851F    	STA $1F        ; Set src HB
C3/7CA3:	60      	RTS

Fork: Point to blank portrait
C3/7CA4:	A0519F  	LDY #$9F51     ; 7E/9F51
C3/7CA7:	841D    	STY $1D        ; Set src LBs
C3/7CA9:	A97E    	LDA #$7E       ; Bank: 7E
C3/7CAB:	851F    	STA $1F        ; Set src HB
C3/7CAD:	60      	RTS

Load portrait palette for Lineup menu
C3/7CAE:	A400    	LDY $00        ; Palette: 0
C3/7CB0:	5A      	PHY            ; Save dest
C3/7CB1:	7B      	TDC            ; Clear A
C3/7CB2:	A54B    	LDA $4B        ; Cursor slot
C3/7CB4:	18      	CLC            ; Prepare ADC
C3/7CB5:	654A    	ADC $4A        ; +16 if on party
C3/7CB7:	655A    	ADC $5A        ; Always 0...
C3/7CB9:	AA      	TAX            ; Index sum
C3/7CBA:	BF899D7E	LDA $7E9D89,X  ; Actor in slot
C3/7CBE:	1016    	BPL $7CD6      ; Branch if any
C3/7CC0:	7B      	TDC            ; Use Terra
C3/7CC1:	8013    	BRA $7CD6      ; Load palette

Load portrait A's palette for Lineup group 5-8 (unused)
C3/7CC3:	A400    	LDY $00        ; Palette: 0
C3/7CC5:	8003    	BRA $7CCA      ; Skip a line

Load portrait B's palette for Lineup group 5-8 (unused part)
C3/7CC7:	A02000  	LDY #$0020     ; Palette: 1
C3/7CCA:	5A      	PHY            ; Save dest
C3/7CCB:	7B      	TDC            ; Clear A
C3/7CCC:	A54B    	LDA $4B        ; Cursor slot
C3/7CCE:	AA      	TAX            ; Index it
C3/7CCF:	BFA99D7E	LDA $7E9DA9,X  ; Actor in slot
C3/7CD3:	1001    	BPL $7CD6      ; Branch if any
C3/7CD5:	7B      	TDC            ; Use Terra
C3/7CD6:	0A      	ASL A          ; Actor x2
C3/7CD7:	AA      	TAX            ; Index it
C3/7CD8:	C220    	REP #$20       ; 16-bit A
C3/7CDA:	BF6969C3	LDA $C36969,X  ; Actor's address
C3/7CDE:	A8      	TAY            ; Index it
C3/7CDF:	7B      	TDC            ; Clear A
C3/7CE0:	E220    	SEP #$20       ; 8-bit A
C3/7CE2:	A910    	LDA #$10       ; Colors: 16
C3/7CE4:	85E3    	STA $E3        ; Set counter
C3/7CE6:	B91400  	LDA $0014,Y    ; Status
C3/7CE9:	2920    	AND #$20       ; Imp?
C3/7CEB:	F004    	BEQ $7CF1      ; Branch if not
C3/7CED:	A90F    	LDA #$0F       ; Use Imp data
C3/7CEF:	8003    	BRA $7CF4      ; Skip a line
C3/7CF1:	B90100  	LDA $0001,Y    ; Graphics set
C3/7CF4:	AA      	TAX            ; Index it
C3/7CF5:	BF006FC3	LDA $C36F00,X  ; Palette number
C3/7CF9:	C220    	REP #$20       ; 16-bit A
C3/7CFB:	0A      	ASL A          ; x2
C3/7CFC:	0A      	ASL A          ; x4
C3/7CFD:	0A      	ASL A          ; x8
C3/7CFE:	0A      	ASL A          ; x16
C3/7CFF:	0A      	ASL A          ; x32
C3/7D00:	AA      	TAX            ; Index it
C3/7D01:	7A      	PLY            ; RAM index
C3/7D02:	C220    	REP #$20       ; 16-bit A
C3/7D04:	DA      	PHX            ; Save ROM index
C3/7D05:	BF6058ED	LDA $ED5860,X  ; Portrait color
C3/7D09:	BB      	TYX            ; RAM index
C3/7D0A:	9F49317E	STA $7E3149,X  ; To OBJ pal 0
C3/7D0E:	E220    	SEP #$20       ; 8-bit A
C3/7D10:	FA      	PLX            ; ROM index
C3/7D11:	E8      	INX            ; ROM index +1
C3/7D12:	E8      	INX            ; ROM index +1
C3/7D13:	C8      	INY            ; RAM index +1
C3/7D14:	C8      	INY            ; RAM index +1
C3/7D15:	C6E3    	DEC $E3        ; One less color
C3/7D17:	D0E9    	BNE $7D02      ; Loop till last
C3/7D19:	E220    	SEP #$20       ; 8-bit A
C3/7D1B:	60      	RTS

Load navigation data for Item, Colosseum, or Sell menu
C3/7D1C:	A02B7D  	LDY #$7D2B     ; C3/7D2B
C3/7D1F:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for Item, Colosseum, or Sell menu
C3/7D22:	20C781  	JSR $81C7      ; Handle D-Pad
C3/7D25:	A0307D  	LDY #$7D30     ; C3/7D30
C3/7D28:	4C4806  	JMP $0648      ; Relocate cursor

Navigation data for Item, Colosseum, and Sell menus
C3/7D2B:	01      	; Wraps horizontally
C3/7D2C:	00      	; Initial column
C3/7D2D:	00      	; Initial row
C3/7D2E:	01      	; 1 column
C3/7D2F:	0A      	; 10 rows

Cursor positions for Item, Colosseum, and Sell menus
C3/7D30:	085C    	; Item 1
C3/7D32:	0868    	; Item 2
C3/7D34:	0874    	; Item 3
C3/7D36:	0880    	; Item 4
C3/7D38:	088C    	; Item 5
C3/7D3A:	0898    	; Item 6
C3/7D3C:	08A4    	; Item 7
C3/7D3E:	08B0    	; Item 8
C3/7D40:	08BC    	; Item 9
C3/7D42:	08C8    	; Item 10

Load navigation data for rare item menu
C3/7D44:	A0537D  	LDY #$7D53     ; C3/7D53
C3/7D47:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for rare item menu
C3/7D4A:	202D07  	JSR $072D      ; Handle D-Pad
C3/7D4D:	A0587D  	LDY #$7D58     ; C3/7D58
C3/7D50:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for rare item menu
C3/7D53:	00      	; Wraps on all sides
C3/7D54:	00      	; Initial column
C3/7D55:	00      	; Initial row
C3/7D56:	02      	; 2 columns
C3/7D57:	0A      	; 10 rows

Cursor positions for rare item menu
C3/7D58:	085C    	; Item 1
C3/7D5A:	785C    	; Item 2
C3/7D5C:	0868    	; Item 3
C3/7D5E:	7868    	; Item 4
C3/7D60:	0874    	; Item 5
C3/7D62:	7874    	; Item 6
C3/7D64:	0880    	; Item 7
C3/7D66:	7880    	; Item 8
C3/7D68:	088C    	; Item 9
C3/7D6A:	788C    	; Item 10
C3/7D6C:	0898    	; Item 11
C3/7D6E:	7898    	; Item 12
C3/7D70:	08A4    	; Item 13
C3/7D72:	78A4    	; Item 14
C3/7D74:	08B0    	; Item 15
C3/7D76:	78B0    	; Item 16
C3/7D78:	08BC    	; Item 17
C3/7D7A:	78BC    	; Item 18
C3/7D7C:	08C8    	; Item 19
C3/7D7E:	78C8    	; Item 20

Load navigation data for Item menu options
C3/7D80:	A0987D  	LDY #$7D98     ; C3/7D98
C3/7D83:	4CFE05  	JMP $05FE      ; Load navig data

Relocate cursor for Item menu options
C3/7D86:	A09D7D  	LDY #$7D9D     ; C3/7D9D
C3/7D89:	4C4006  	JMP $0640      ; Relocate cursor

Handle D-Pad for Item menu options
C3/7D8C:	202D07  	JSR $072D      ; Handle D-Pad
C3/7D8F:	20867D  	JSR $7D86      ; Relocate cursor
C3/7D92:	A44D    	LDY $4D        ; Cursor position
C3/7D94:	8C3402  	STY $0234      ; To cursor memory
C3/7D97:	60      	RTS

Navigation data for Item menu options
C3/7D98:	01      	; Wraps horizontally
C3/7D99:	00      	; Initial column
C3/7D9A:	00      	; Initial row
C3/7D9B:	03      	; 3 columns
C3/7D9C:	01      	; 1 row

Cursor positions for Item menu options
C3/7D9D:	4016    	; USE
C3/7D9F:	6816    	; ARRANGE
C3/7DA1:	B016    	; RARE

Draw Item menu with inventory; upload element graphics
C3/7DA3:	A901    	LDA #$01       ; 64x32 at $0000
C3/7DA5:	8D0721  	STA $2107      ; Set BG1 map loc
C3/7DA8:	A0237E  	LDY #$7E23     ; C3/7E23
C3/7DAB:	204103  	JSR $0341      ; Draw stats box A
C3/7DAE:	A0277E  	LDY #$7E27     ; C3/7E27
C3/7DB1:	204103  	JSR $0341      ; Draw stats box B
C3/7DB4:	A0177E  	LDY #$7E17     ; C3/7E17
C3/7DB7:	204103  	JSR $0341      ; Draw option box
C3/7DBA:	A0137E  	LDY #$7E13     ; C3/7E13
C3/7DBD:	204103  	JSR $0341      ; Draw title box
C3/7DC0:	A01B7E  	LDY #$7E1B     ; C3/7E1B
C3/7DC3:	204103  	JSR $0341      ; Draw desc box
C3/7DC6:	A01F7E  	LDY #$7E1F     ; C3/7E1F
C3/7DC9:	204103  	JSR $0341      ; Draw main box
C3/7DCC:	20520E  	JSR $0E52      ; Upload windows
C3/7DCF:	203C6A  	JSR $6A3C      ; Clear BG3 map A
C3/7DD2:	20416A  	JSR $6A41      ; Clear BG3 map B
C3/7DD5:	20466A  	JSR $6A46      ; Clear BG3 map C
C3/7DD8:	204B6A  	JSR $6A4B      ; Clear BG3 map D
C3/7DDB:	A92C    	LDA #$2C       ; Palette 3
C3/7DDD:	8529    	STA $29        ; Color: Blue
C3/7DDF:	A0168D  	LDY #$8D16     ; Text pointer
C3/7DE2:	20F902  	JSR $02F9      ; Draw "Item"
C3/7DE5:	A920    	LDA #$20       ; Palette 0
C3/7DE7:	8529    	STA $29        ; Color: User's
C3/7DE9:	A2108D  	LDX #$8D10     ; Text ptrs loc
C3/7DEC:	A00600  	LDY #$0006     ; Strings: 3
C3/7DEF:	20BA69  	JSR $69BA      ; Draw options
C3/7DF2:	203DA7  	JSR $A73D      ; Build desc map
C3/7DF5:	20A9A9  	JSR $A9A9      ; Upload elements
C3/7DF8:	20196A  	JSR $6A19      ; Clear BG1 map B
C3/7DFB:	200D7E  	JSR $7E0D      ; Draw inventory
C3/7DFE:	20F182  	JSR $82F1      ; Desc; item count
C3/7E01:	20280E  	JSR $0E28      ; Upload BG1 A+B
C3/7E04:	20360E  	JSR $0E36      ; Upload BG1 B+C
C3/7E07:	206E0E  	JSR $0E6E      ; Upload BG3 A+B
C3/7E0A:	4C7C0E  	JMP $0E7C      ; Upload BG3 C+D

Draw inventory after clearing tilemap (Item, Colosseum, Sell)
C3/7E0D:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/7E10:	4C887F  	JMP $7F88      ; Draw inventory

Window layout for Item menu and gear data menu
C3/7E13:	8B580402	; 06x04 at $588B (Title)
C3/7E17:	97581602	; 24x04 at $5897 (Options)
C3/7E1B:	8B591C03	; 30x05 at $598B (Description)
C3/7E1F:	CB5A1C0F	; 30x17 at $5ACB (Main)
C3/7E23:	AD600D18	; 15x26 at $60AD (Gear stats; L part)
C3/7E27:	85580118	; 03x26 at $5885 (Gear stats; R part)

Set to condense text in Item, Colosseum, or Sell menu
C3/7E2B:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/7E2D:	8D5043  	STA $4350      ; Set CH5 mode
C3/7E30:	A912    	LDA #$12       ; $2112
C3/7E32:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/7E35:	A0577F  	LDY #$7F57     ; C3/7F57
C3/7E38:	8C5243  	STY $4352      ; Set CH5 src LBs
C3/7E3B:	A9C3    	LDA #$C3       ; Bank: C3
C3/7E3D:	8D5443  	STA $4354      ; Set CH5 src HB
C3/7E40:	A9C3    	LDA #$C3       ; ...
C3/7E42:	8D5743  	STA $4357      ; Set indir HB
C3/7E45:	A920    	LDA #$20       ; Channel: 5
C3/7E47:	0443    	TSB $43        ; Queue HDMA-5
C3/7E49:	20957E  	JSR $7E95      ; Load BG1 V-Data
C3/7E4C:	A600    	LDX $00        ; Index: 0
C3/7E4E:	BFDA7EC3	LDA $C37EDA,X  ; BG1 H-Pan data
C3/7E52:	9F099A7E	STA $7E9A09,X  ; Save in RAM
C3/7E56:	E8      	INX            ; Index +1
C3/7E57:	E00D00  	CPX #$000D     ; End of table?
C3/7E5A:	D0F2    	BNE $7E4E      ; Loop if not
C3/7E5C:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/7E5E:	8D6043  	STA $4360      ; Set CH6 mode
C3/7E61:	A90D    	LDA #$0D       ; $210D
C3/7E63:	8D6143  	STA $4361      ; To BG1 H-Scroll
C3/7E66:	A0099A  	LDY #$9A09     ; 7E/9A09
C3/7E69:	8C6243  	STY $4362      ; Set CH6 src LBs
C3/7E6C:	A97E    	LDA #$7E       ; Bank: 7E
C3/7E6E:	8D6443  	STA $4364      ; Set CH6 src HB
C3/7E71:	A97E    	LDA #$7E       ; ...
C3/7E73:	8D6743  	STA $4367      ; Set indir HB
C3/7E76:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/7E78:	8D7043  	STA $4370      ; Set CH7 mode
C3/7E7B:	A90E    	LDA #$0E       ; $210E
C3/7E7D:	8D7143  	STA $4371      ; To BG1 V-Scroll
C3/7E80:	A04998  	LDY #$9849     ; 7E/9849
C3/7E83:	8C7243  	STY $4372      ; Set CH7 src LBs
C3/7E86:	A97E    	LDA #$7E       ; Bank: 7E
C3/7E88:	8D7443  	STA $4374      ; Set CH7 src HB
C3/7E8B:	A97E    	LDA #$7E       ; ...
C3/7E8D:	8D7743  	STA $4377      ; Set indir HB
C3/7E90:	A9C0    	LDA #$C0       ; Channels: 6, 7
C3/7E92:	0443    	TSB $43        ; Queue HDMA 6+7
C3/7E94:	60      	RTS

Load BG1 vertical shift table for Item, Colosseum, or Sell menu
C3/7E95:	A600    	LDX $00        ; Index: 0
C3/7E97:	BFE77EC3	LDA $C37EE7,X  ; Void's V-Data
C3/7E9B:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/7E9F:	E8      	INX            ; Index +1
C3/7EA0:	E01200  	CPX #$0012     ; At items?
C3/7EA3:	D0F2    	BNE $7E97      ; Loop if not
C3/7EA5:	BFE77EC3	LDA $C37EE7,X  ; Scanline data
C3/7EA9:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/7EAD:	E8      	INX            ; Index +1
C3/7EAE:	7B      	TDC            ; Clear A
C3/7EAF:	A549    	LDA $49        ; Top BG1 row
C3/7EB1:	0A      	ASL A          ; x2
C3/7EB2:	0A      	ASL A          ; x4
C3/7EB3:	0A      	ASL A          ; x8
C3/7EB4:	0A      	ASL A          ; x16
C3/7EB5:	29FF    	AND #$FF       ; ...
C3/7EB7:	C220    	REP #$20       ; 16-bit A
C3/7EB9:	18      	CLC            ; Prepare ADC
C3/7EBA:	7FE77EC3	ADC $C37EE7,X  ; Add V-Pan data
C3/7EBE:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/7EC2:	E220    	SEP #$20       ; 8-bit A
C3/7EC4:	E8      	INX            ; Index +1
C3/7EC5:	E8      	INX            ; Index +1
C3/7EC6:	E06C00  	CPX #$006C     ; Beyond items?
C3/7EC9:	D0DA    	BNE $7EA5      ; Loop if not
C3/7ECB:	BFE77EC3	LDA $C37EE7,X  ; Void's V-Data
C3/7ECF:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/7ED3:	E8      	INX            ; Index +1
C3/7ED4:	E07000  	CPX #$0070     ; End of table?
C3/7ED7:	D0F2    	BNE $7ECB      ; Loop if not
C3/7ED9:	60      	RTS

BG1 H-Shift table for inventory-style menus
C3/7EDA:	28 0001 	; Nothing
C3/7EDD:	2F 0001 	; Nothing
C3/7EE0:	78 0000 	; Items
C3/7EE3:	1E 0001 	; Nothing
C3/7EE6:	00      	; End

BG1 V-Shift table for inventory-style menus
C3/7EE7:	27 8000 	; Nothing?
C3/7EEA:	08 0000 	; Nothing?
C3/7EED:	0C 0400 	; Nothing?
C3/7EF0:	0C 0800 	; Nothing?
C3/7EF3:	08 8000 	; Nothing?
C3/7EF6:	08 0000 	; Nothing?
C3/7EF9:	04 ACFF 	; Item row 1
C3/7EFC:	04 ACFF 	; Item row 2
C3/7EFF:	04 ACFF 	; Item row 3
C3/7F02:	04 B0FF 	; Item row 4
C3/7F05:	04 B0FF 	; Item row 5
C3/7F08:	04 B0FF 	; Item row 6
C3/7F0B:	04 B4FF 	; Item row 7
C3/7F0E:	04 B4FF 	; Item row 8
C3/7F11:	04 B4FF 	; Item row 9
C3/7F14:	04 B8FF 	; Item row 10
C3/7F17:	04 B8FF 	; Item row 11
C3/7F1A:	04 B8FF 	; Item row 12
C3/7F1D:	04 BCFF 	; Item row 13
C3/7F20:	04 BCFF 	; Item row 14
C3/7F23:	04 BCFF 	; Item row 15
C3/7F26:	04 C0FF 	; Item row 16
C3/7F29:	04 C0FF 	; Item row 17
C3/7F2C:	04 C0FF 	; Item row 18
C3/7F2F:	04 C4FF 	; Item row 19
C3/7F32:	04 C4FF 	; Item row 20
C3/7F35:	04 C4FF 	; Item row 21
C3/7F38:	04 C8FF 	; Item row 22
C3/7F3B:	04 C8FF 	; Item row 23
C3/7F3E:	04 C8FF 	; Item row 24
C3/7F41:	04 CCFF 	; Item row 25
C3/7F44:	04 CCFF 	; Item row 26
C3/7F47:	04 CCFF 	; Item row 27
C3/7F4A:	04 D0FF 	; Item row 28
C3/7F4D:	04 D0FF 	; Item row 29
C3/7F50:	04 D0FF 	; Item row 30
C3/7F53:	1E 0000 	; Nothing
C3/7F56:	00      	; End

BG3 V-Shift table for Item and Colosseum menus
C3/7F57:	2F 0000 	; Title
C3/7F5A:	0C 0400 	; Desc row 1
C3/7F5D:	0C 0800 	; Desc row 2
C3/7F60:	0C 0C00 	; 2-hand
C3/7F63:	0C 1000 	; 50% Dmg
C3/7F66:	0C 1400 	; Vigor
C3/7F69:	0C 1800 	; Speed
C3/7F6C:	0C 1C00 	; Stamina
C3/7F6F:	0C 2000 	; Mag.Pwr
C3/7F72:	0C 2400 	; Bat.Pwr
C3/7F75:	0C 2800 	; Defense
C3/7F78:	0C 2C00 	; Evade
C3/7F7B:	0C 3000 	; Mag.Def
C3/7F7E:	0C 3400 	; MBlock
C3/7F81:	0C 3800 	; Nothing
C3/7F84:	0C 3C00 	; Nothing
C3/7F87:	00      	; End

Draw inventory for Item, Colosseum, or Sell menu
C3/7F88:	20F783  	JSR $83F7      ; Define $E5, $E6
C3/7F8B:	A00A00  	LDY #$000A     ; Rows left: 10
C3/7F8E:	5A      	PHY            ; Save counter
C3/7F8F:	20A17F  	JSR $7FA1      ; Draw item info
C3/7F92:	E6E5    	INC $E5        ; Item slot +1
C3/7F94:	A5E6    	LDA $E6        ; BG1 write row
C3/7F96:	1A      	INC A          ; Go 1 row down
C3/7F97:	1A      	INC A          ; Go 1 row down
C3/7F98:	291F    	AND #$1F       ; Stay in limits
C3/7F9A:	85E6    	STA $E6        ; Save changes
C3/7F9C:	7A      	PLY            ; Rows left
C3/7F9D:	88      	DEY            ; One less left
C3/7F9E:	D0EE    	BNE $7F8E      ; Loop till last
C3/7FA0:	60      	RTS

Draw item's name, quantity owned, and class
C3/7FA1:	7B      	TDC            ; Clear A
C3/7FA2:	A5E5    	LDA $E5        ; Item slot
C3/7FA4:	A8      	TAY            ; Index it
C3/7FA5:	204580  	JSR $8045      ; Choose palette
C3/7FA8:	B96919  	LDA $1969,Y    ; Item quantity
C3/7FAB:	20E004  	JSR $04E0      ; Turn into text
C3/7FAE:	A5E6    	LDA $E6        ; BG1 write row
C3/7FB0:	1A      	INC A          ; Go 1 row down
C3/7FB1:	A21100  	LDX #$0011     ; X: 17
C3/7FB4:	209F80  	JSR $809F      ; Compute map ptr
C3/7FB7:	20B604  	JSR $04B6      ; Draw quantity
C3/7FBA:	A5E6    	LDA $E6        ; BG1 write row
C3/7FBC:	1A      	INC A          ; Go 1 row down
C3/7FBD:	A20300  	LDX #$0003     ; X: 3
C3/7FC0:	209F80  	JSR $809F      ; Compute map ptr
C3/7FC3:	C220    	REP #$20       ; 16-bit A
C3/7FC5:	8A      	TXA            ; ...
C3/7FC6:	8F899E7E	STA $7E9E89    ; Set position
C3/7FCA:	E220    	SEP #$20       ; 8-bit A
C3/7FCC:	7B      	TDC            ; Clear A
C3/7FCD:	A5E5    	LDA $E5        ; Item slot
C3/7FCF:	A8      	TAY            ; Index it
C3/7FD0:	20B980  	JSR $80B9      ; Load "<item>:"
C3/7FD3:	20D97F  	JSR $7FD9      ; Draw string
C3/7FD6:	4CE67F  	JMP $7FE6      ; Draw item class

Draw memorized string
C3/7FD9:	A0899E  	LDY #$9E89     ; 7E/9E89
C3/7FDC:	84E7    	STY $E7        ; Set src LBs
C3/7FDE:	A97E    	LDA #$7E       ; Bank: 7E
C3/7FE0:	85E9    	STA $E9        ; Set src HB
C3/7FE2:	20FF02  	JSR $02FF      ; Draw string
C3/7FE5:	60      	RTS

Draw item class for Item, Colosseum, or Sell menu
C3/7FE6:	C220    	REP #$20       ; 16-bit A
C3/7FE8:	AF899E7E	LDA $7E9E89    ; Text position
C3/7FEC:	18      	CLC            ; Prepare ADC
C3/7FED:	692400  	ADC #$0024     ; Skip item name
C3/7FF0:	8F899E7E	STA $7E9E89    ; Save changes
C3/7FF4:	E220    	SEP #$20       ; 8-bit A
C3/7FF6:	7B      	TDC            ; Clear A
C3/7FF7:	AF8B9E7E	LDA $7E9E8B    ; Item icon
C3/7FFB:	C9FF    	CMP #$FF       ; None?
C3/7FFD:	F02D    	BEQ $802C      ; Blank if so
C3/7FFF:	38      	SEC            ; Prepare SBC
C3/8000:	E9D8    	SBC #$D8       ; Now 0-15
C3/8002:	85E0    	STA $E0        ; Memorize it
C3/8004:	0A      	ASL A          ; x2
C3/8005:	0A      	ASL A          ; x4
C3/8006:	85E2    	STA $E2        ; Memorize it
C3/8008:	A5E0    	LDA $E0        ; 0-15 icon
C3/800A:	0A      	ASL A          ; x2
C3/800B:	18      	CLC            ; ...
C3/800C:	65E2    	ADC $E2        ; x6
C3/800E:	65E0    	ADC $E0        ; x7
C3/8010:	AA      	TAX            ; Index it
C3/8011:	A08B9E  	LDY #$9E8B     ; 7E/9E8B
C3/8014:	8C8121  	STY $2181      ; Set WRAM LBs
C3/8017:	A00700  	LDY #$0007     ; Letters: 7
C3/801A:	BF006FD2	LDA $D26F00,X  ; Letter
C3/801E:	8D8021  	STA $2180      ; Add to string
C3/8021:	E8      	INX            ; Point to next
C3/8022:	88      	DEY            ; One less left
C3/8023:	D0F5    	BNE $801A      ; Loop till last
C3/8025:	7B      	TDC            ; Terminator
C3/8026:	8D8021  	STA $2180      ; End string
C3/8029:	4CD97F  	JMP $7FD9      ; Draw string

Fork: Blank item class
C3/802C:	A08B9E  	LDY #$9E8B     ; 7E/9E8B
C3/802F:	8C8121  	STY $2181      ; Set WRAM LBs
C3/8032:	A00700  	LDY #$0007     ; Spaces: 7
C3/8035:	A9FF    	LDA #$FF       ; Space char
C3/8037:	8D8021  	STA $2180      ; Add to string
C3/803A:	E8      	INX            ; ...
C3/803B:	88      	DEY            ; One less left
C3/803C:	D0F9    	BNE $8037      ; Loop till last
C3/803E:	7B      	TDC            ; Terminator
C3/803F:	8D8021  	STA $2180      ; End string
C3/8042:	4CD97F  	JMP $7FD9      ; Draw 7 spaces

Choose item's color for Item, Colosseum, or Sell menu
C3/8045:	AD0002  	LDA $0200      ; Root menu
C3/8048:	C903    	CMP #$03       ; Shop menu?
C3/804A:	F039    	BEQ $8085      ; Enable if so
C3/804C:	C907    	CMP #$07       ; Colosseum?
C3/804E:	F035    	BEQ $8085      ; Enable if so
C3/8050:	8004    	BRA $8056      ; Handle main menu

Fork: Get item slot (unused)
C3/8052:	7B      	TDC            ; Clear A
C3/8053:	A54B    	LDA $4B        ; Cursor slot
C3/8055:	A8      	TAY            ; Index it

Fork: Main menu
C3/8056:	B96918  	LDA $1869,Y    ; Item in slot
C3/8059:	C9EF    	CMP #$EF       ; Megalixir?
C3/805B:	F02D    	BEQ $808A      ; Disable if so
C3/805D:	C9FF    	CMP #$FF       ; None?
C3/805F:	F024    	BEQ $8085      ; Enable if so
C3/8061:	C9F7    	CMP #$F7       ; Tent?
C3/8063:	F02A    	BEQ $808F      ; Branch if so
C3/8065:	C9F6    	CMP #$F6       ; Sleeping Bag?
C3/8067:	F026    	BEQ $808F      ; Branch if so
C3/8069:	C9FD    	CMP #$FD       ; Warp Stone?
C3/806B:	F029    	BEQ $8096      ; Branch if so
C3/806D:	202183  	JSR $8321      ; Compute index
C3/8070:	AE3421  	LDX $2134      ; Load it
C3/8073:	BF0050D8	LDA $D85000,X  ; Properties
C3/8077:	2907    	AND #$07       ; Get class
C3/8079:	C906    	CMP #$06       ; Consumable?
C3/807B:	D00D    	BNE $808A      ; Disable if not
C3/807D:	BF0050D8	LDA $D85000,X  ; Properties
C3/8081:	2940    	AND #$40       ; Usable in field?
C3/8083:	F005    	BEQ $808A      ; Disable if not
C3/8085:	A920    	LDA #$20       ; Palette 0
C3/8087:	8529    	STA $29        ; Color: User's
C3/8089:	60      	RTS

Fork: Set color to gray
C3/808A:	A928    	LDA #$28       ; Palette 2
C3/808C:	8529    	STA $29        ; Color: Gray
C3/808E:	60      	RTS

Fork: Tent or Sleeping Bag
C3/808F:	AD0102  	LDA $0201      ; Can save here?
C3/8092:	30F1    	BMI $8085      ; Enable if so
C3/8094:	80F4    	BRA $808A      ; Color: Gray

Fork: Warp Stone
C3/8096:	AD0102  	LDA $0201      ; Area permissions
C3/8099:	8902    	BIT #$02       ; Can warp here?
C3/809B:	D0E8    	BNE $8085      ; Enable if so
C3/809D:	80EB    	BRA $808A      ; Color: Gray

Compute position into BG1 tilemap A
C3/809F:	EB      	XBA            ; Switch to HB
C3/80A0:	A500    	LDA $00        ; Clear it
C3/80A2:	EB      	XBA            ; Y position
C3/80A3:	C220    	REP #$20       ; 16-bit A
C3/80A5:	0A      	ASL A          ; x2
C3/80A6:	0A      	ASL A          ; x4
C3/80A7:	0A      	ASL A          ; x8
C3/80A8:	0A      	ASL A          ; x16
C3/80A9:	0A      	ASL A          ; x32
C3/80AA:	0A      	ASL A          ; x64
C3/80AB:	85E7    	STA $E7        ; Memorize it
C3/80AD:	8A      	TXA            ; X position
C3/80AE:	0A      	ASL A          ; Double it
C3/80AF:	18      	CLC            ; Prepare ADC
C3/80B0:	65E7    	ADC $E7        ; Add Y x64
C3/80B2:	694938  	ADC #$3849     ; Add base adr
C3/80B5:	AA      	TAX            ; Put sum in X
C3/80B6:	E220    	SEP #$20       ; 8-bit A
C3/80B8:	60      	RTS

Load owned item's name, add colon (Item, Colosseum, Sell)
C3/80B9:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/80BC:	8E8121  	STX $2181      ; Set WRAM LBs
C3/80BF:	AD1242  	LDA $4212      ; PPU status
C3/80C2:	2940    	AND #$40       ; H-Blank?
C3/80C4:	F0F9    	BEQ $80BF      ; Loop if not
C3/80C6:	7B      	TDC            ; Clear A
C3/80C7:	B96918  	LDA $1869,Y    ; Item in slot
C3/80CA:	C9FF    	CMP #$FF       ; None?
C3/80CC:	F028    	BEQ $80F6      ; Blank if so
C3/80CE:	8D1B21  	STA $211B      ; Set matrix A LB
C3/80D1:	9C1B21  	STZ $211B      ; Clear HB
C3/80D4:	A90D    	LDA #$0D       ; Name data size
C3/80D6:	8D1C21  	STA $211C      ; Set matrix B
C3/80D9:	8D1C21  	STA $211C      ; ...
C3/80DC:	AE3421  	LDX $2134      ; Index product
C3/80DF:	A00D00  	LDY #$000D     ; Letters: 13
C3/80E2:	BF00B3D2	LDA $D2B300,X  ; Letter
C3/80E6:	8D8021  	STA $2180      ; Add to string
C3/80E9:	E8      	INX            ; Point to next
C3/80EA:	88      	DEY            ; One less left
C3/80EB:	D0F5    	BNE $80E2      ; Loop till last
C3/80ED:	A9C1    	LDA #$C1       ; Char: ":"
C3/80EF:	8D8021  	STA $2180      ; Add to string
C3/80F2:	9C8021  	STZ $2180      ; End string
C3/80F5:	60      	RTS

Fork: Blank item name, colon, and quantity
C3/80F6:	A01000  	LDY #$0010     ; Spaces: 16
C3/80F9:	A9FF    	LDA #$FF       ; Space char
C3/80FB:	8D8021  	STA $2180      ; Add to string
C3/80FE:	88      	DEY            ; One less left
C3/80FF:	D0FA    	BNE $80FB      ; Loop till last
C3/8101:	9C8021  	STZ $2180      ; End string
C3/8104:	60      	RTS

Adjust BG1 vertical shift amounts while list scrolls
C3/8105:	A21200  	LDX #$0012     ; Scanline: 88th
C3/8108:	E220    	SEP #$20       ; 8-bit A
C3/810A:	BF49987E	LDA $7E9849,X  ; Scanline amount
C3/810E:	C91E    	CMP #$1E       ; Last 30 lines?
C3/8110:	F04C    	BEQ $815E      ; Exit if so
C3/8112:	E8      	INX            ; RAM index +1
C3/8113:	DA      	PHX            ; Memorize it
C3/8114:	7B      	TDC            ; Clear A
C3/8115:	A520    	LDA $20        ; Scroll timer
C3/8117:	C220    	REP #$20       ; 16-bit A
C3/8119:	A441    	LDY $41        ; Scrolling up?
C3/811B:	3002    	BMI $811F      ; Branch if so
C3/811D:	8004    	BRA $8123      ; Skip 2 lines
C3/811F:	18      	CLC            ; Prepare ADC
C3/8120:	690300  	ADC #$0003     ; Timer +3
C3/8123:	0A      	ASL A          ; Timer x2
C3/8124:	AA      	TAX            ; Index it
C3/8125:	A8      	TAY            ; Memorize it
C3/8126:	BF5F81C3	LDA $C3815F,X  ; Shift mod; R1/3
C3/812A:	FA      	PLX            ; RAM index
C3/812B:	18      	CLC            ; Prepare ADC
C3/812C:	7F49987E	ADC $7E9849,X  ; Add actual shift
C3/8130:	9F49987E	STA $7E9849,X  ; Set actual shift
C3/8134:	E8      	INX            ; RAM index +1
C3/8135:	E8      	INX            ; RAM index +1
C3/8136:	E8      	INX            ; RAM index +1
C3/8137:	DA      	PHX            ; Memorize it
C3/8138:	BB      	TYX            ; ROM index
C3/8139:	BF6B81C3	LDA $C3816B,X  ; Shift mod; R2/3
C3/813D:	FA      	PLX            ; RAM index
C3/813E:	18      	CLC            ; Prepare ADC
C3/813F:	7F49987E	ADC $7E9849,X  ; Add actual shift
C3/8143:	9F49987E	STA $7E9849,X  ; Set actual shift
C3/8147:	E8      	INX            ; RAM index +1
C3/8148:	E8      	INX            ; RAM index +1
C3/8149:	E8      	INX            ; RAM index +1
C3/814A:	DA      	PHX            ; Memorize it
C3/814B:	BB      	TYX            ; ROM index
C3/814C:	BF7781C3	LDA $C38177,X  ; Shift mod; R3/3
C3/8150:	FA      	PLX            ; RAM index
C3/8151:	18      	CLC            ; Prepare ADC
C3/8152:	7F49987E	ADC $7E9849,X  ; Add actual shift
C3/8156:	9F49987E	STA $7E9849,X  ; Set actual shift
C3/815A:	E8      	INX            ; RAM index +1
C3/815B:	E8      	INX            ; RAM index +1
C3/815C:	80AA    	BRA $8108      ; Do next 12 lines
C3/815E:	60      	RTS

Shift amount for 1st of every 3 rows of list scrolling down
C3/815F:	0800    	; Frame 3: +8 px down
C3/8161:	0400    	; Frame 2: +4 px down
C3/8163:	0400    	; Frame 1: +4 px down

Shift amount for 1st of every 3 rows of list scrolling up
C3/8165:	FCFF    	; Frame 3: +4 px up
C3/8167:	FCFF    	; Frame 2: +4 px up
C3/8169:	F8FF    	; Frame 1: +8 px up

Shift amount for 2nd of every 3 rows of list scrolling down
C3/816B:	0400    	; Frame 3: +4 px down
C3/816D:	0800    	; Frame 2: +8 px down
C3/816F:	0400    	; Frame 1: +4 px down

Shift amount for 2nd of every 3 rows of list scrolling up
C3/8171:	FCFF    	; Frame 3: +4 px up
C3/8173:	F8FF    	; Frame 2: +8 px up
C3/8175:	FCFF    	; Frame 1: +4 px up

Shift amount for every 3rd row of list scrolling down
C3/8177:	0400    	; Frame 3: +4 px down
C3/8179:	0400    	; Frame 2: +4 px down
C3/817B:	0800    	; Frame 1: +8 px down

Shift amount for every 3rd row of list scrolling up
C3/817D:	F8FF    	; Frame 3: +8 px up
C3/817F:	FCFF    	; Frame 2: +4 px up
C3/8181:	FCFF    	; Frame 1: +4 px up

Update scroll parameters for list
C3/8183:	AA      	TAX            ; Index mode
C3/8184:	7C8781  	JMP ($8187,X)  ; Handle mode

Jump table for the above
C3/8187:	8F81    	; Scroll upward
C3/8189:	9C81    	; Scroll downward
C3/818B:	A781    	; Set timer
C3/818D:	B081    	; Check timer

Mode 0: Scroll upward
C3/818F:	A62D    	LDX $2D        ; ...
C3/8191:	C220    	REP #$20       ; 16-bit A
C3/8193:	A9FCFF  	LDA #$FFFC     ; 4 px up
C3/8196:	8541    	STA $41        ; Set V-Speed
C3/8198:	E220    	SEP #$20       ; 8-bit A
C3/819A:	800B    	BRA $81A7      ; Init timer

Mode 1: Scroll downward
C3/819C:	A62D    	LDX $2D        ; ...
C3/819E:	C220    	REP #$20       ; 16-bit A
C3/81A0:	A90400  	LDA #$0004     ; 4 px down
C3/81A3:	8541    	STA $41        ; Set V-Speed
C3/81A5:	E220    	SEP #$20       ; 8-bit A

Mode 2: Set timer
C3/81A7:	A62D    	LDX $2D        ; Queue index
C3/81A9:	A903    	LDA #$03       ; Mode: 3
C3/81AB:	9D4936  	STA $3649,X    ; Set next mode
C3/81AE:	8520    	STA $20        ; Set timer

Mode 3: Check timer
C3/81B0:	A62D    	LDX $2D        ; ...
C3/81B2:	A520    	LDA $20        ; Timer expired?
C3/81B4:	F006    	BEQ $81BC      ; Stop if so
C3/81B6:	A920    	LDA #$20       ; Scroll BG1: Y
C3/81B8:	0446    	TSB $46        ; Set menu flag
C3/81BA:	38      	SEC            ; Set to requeue
C3/81BB:	60      	RTS

Fork: Stop scrolling
C3/81BC:	A400    	LDY $00        ; Clear Y
C3/81BE:	8441    	STY $41        ; BG1 V-Speed: 0
C3/81C0:	A920    	LDA #$20       ; Scroll BG1: N
C3/81C2:	1446    	TRB $46        ; Set menu flag
C3/81C4:	18      	CLC            ; Set to dequeue
C3/81C5:	60      	RTS            ; ...
C3/81C6:	60      	RTS

Handle D-Pad for scrollable list, change row when wrapping
C3/81C7:	A520    	LDA $20        ; Scrolling now?
C3/81C9:	D0FB    	BNE $81C6      ; Exit if so

Fork: Handle up
C3/81CB:	A50B    	LDA $0B        ; Semi-auto keys
C3/81CD:	8908    	BIT #$08       ; Pushing up?
C3/81CF:	F019    	BEQ $81EA      ; Branch if not
C3/81D1:	A54E    	LDA $4E        ; On first row?
C3/81D3:	D00D    	BNE $81E2      ; Go up if not
C3/81D5:	A54A    	LDA $4A        ; At top of list?
C3/81D7:	F0ED    	BEQ $81C6      ; Exit if so
C3/81D9:	C650    	DEC $50        ; List row -1
C3/81DB:	208682  	JSR $8286      ; Queue scrolling
C3/81DE:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/81E1:	60      	RTS

Fork: Move cursor up
C3/81E2:	C650    	DEC $50        ; List row -1
C3/81E4:	C64E    	DEC $4E        ; Cursor row -1
C3/81E6:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/81E9:	60      	RTS

Fork: Handle down
C3/81EA:	A50B    	LDA $0B        ; Semi-auto keys
C3/81EC:	8904    	BIT #$04       ; Pushing down?
C3/81EE:	F020    	BEQ $8210      ; Branch if not
C3/81F0:	A554    	LDA $54        ; Bottom menu row
C3/81F2:	3A      	DEC A          ; Adjust value
C3/81F3:	C54E    	CMP $4E        ; Cursor's there?
C3/81F5:	D012    	BNE $8209      ; Go down if not
C3/81F7:	A54A    	LDA $4A        ; Scroll position
C3/81F9:	C55C    	CMP $5C        ; At very bottom?
C3/81FB:	F009    	BEQ $8206      ; Exit if so
C3/81FD:	E650    	INC $50        ; List row +1
C3/81FF:	209E82  	JSR $829E      ; Queue scrolling
C3/8202:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/8205:	60      	RTS

Fork: Exit
C3/8206:	4C8582  	JMP $8285      ; RTS...

Fork: Move cursor down
C3/8209:	E650    	INC $50        ; List row +1
C3/820B:	E64E    	INC $4E        ; Cursor row +1
C3/820D:	20A30E  	JSR $0EA3      ; Sound: Cursor

Fork: Handle left
C3/8210:	A50B    	LDA $0B        ; Semi-auto keys
C3/8212:	8902    	BIT #$02       ; Pushing left?
C3/8214:	F033    	BEQ $8249      ; Branch if not
C3/8216:	A54D    	LDA $4D        ; On first column?
C3/8218:	D027    	BNE $8241      ; Branch if not
C3/821A:	A54E    	LDA $4E        ; On top row?
C3/821C:	F00F    	BEQ $822D      ; Branch if so
C3/821E:	C64E    	DEC $4E        ; Cursor row -1
C3/8220:	C650    	DEC $50        ; List row -1
C3/8222:	A553    	LDA $53        ; Furthest column
C3/8224:	3A      	DEC A          ; Adjust value
C3/8225:	854D    	STA $4D        ; Set as cursor's
C3/8227:	854F    	STA $4F        ; Set as list's
C3/8229:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/822C:	60      	RTS

Fork: Wrap to upper, offscreen row
C3/822D:	A54A    	LDA $4A        ; At top of list?
C3/822F:	F095    	BEQ $81C6      ; Exit if so
C3/8231:	208682  	JSR $8286      ; Queue scrolling
C3/8234:	A553    	LDA $53        ; Furthest column
C3/8236:	3A      	DEC A          ; Adjust value
C3/8237:	854D    	STA $4D        ; Set as cursor's
C3/8239:	854F    	STA $4F        ; Set as list's
C3/823B:	C650    	DEC $50        ; List row -1
C3/823D:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/8240:	60      	RTS

Fork: Move cursor left
C3/8241:	C64D    	DEC $4D        ; Cursor column -1
C3/8243:	C64F    	DEC $4F        ; List column -1
C3/8245:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/8248:	60      	RTS

Fork: Handle right
C3/8249:	A50B    	LDA $0B        ; Semi-auto keys
C3/824B:	8901    	BIT #$01       ; Pushing right?
C3/824D:	F036    	BEQ $8285      ; Exit if not
C3/824F:	A553    	LDA $53        ; Furthest column
C3/8251:	3A      	DEC A          ; Adjust value
C3/8252:	C54D    	CMP $4D        ; Cursor's there?
C3/8254:	D028    	BNE $827E      ; Go right if not
C3/8256:	A554    	LDA $54        ; Bottom menu row
C3/8258:	3A      	DEC A          ; Adjust value
C3/8259:	C54E    	CMP $4E        ; Cursor's there?
C3/825B:	F00D    	BEQ $826A      ; Branch if so
C3/825D:	7B      	TDC            ; Clear A
C3/825E:	854D    	STA $4D        ; Cursor column: 1
C3/8260:	854F    	STA $4F        ; List column: 1
C3/8262:	E64E    	INC $4E        ; Cursor row +1
C3/8264:	E650    	INC $50        ; List row +1
C3/8266:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/8269:	60      	RTS

Fork: Wrap to lower, offscreen row
C3/826A:	A54A    	LDA $4A        ; Scroll position
C3/826C:	C55C    	CMP $5C        ; At very bottom?
C3/826E:	F015    	BEQ $8285      ; Exit if so
C3/8270:	209E82  	JSR $829E      ; Queue scrolling
C3/8273:	7B      	TDC            ; Clear A
C3/8274:	854D    	STA $4D        ; Cursor column: 1
C3/8276:	854F    	STA $4F        ; List column: 1
C3/8278:	E650    	INC $50        ; List row +1
C3/827A:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/827D:	60      	RTS

Fork: Move cursor right
C3/827E:	E64D    	INC $4D        ; Cursor column +1
C3/8280:	E64F    	INC $4F        ; List column +1
C3/8282:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/8285:	60      	RTS

Set to scroll list upward, draw row to scroll into view
C3/8286:	C64A    	DEC $4A        ; Scroll pos -1
C3/8288:	C649    	DEC $49        ; Top BG1 row -1
C3/828A:	20F783  	JSR $83F7      ; Define $E5, $E6
C3/828D:	20DD82  	JSR $82DD      ; Draw new row
C3/8290:	A900    	LDA #$00       ; Min slot: 0
C3/8292:	A08381  	LDY #$8183     ; C3/8183
C3/8295:	207311  	JSR $1173      ; Queue scroll fn
C3/8298:	7B      	TDC            ; Anim mode: Up
C3/8299:	9F49367E	STA $7E3649,X  ; Set scroll mode
C3/829D:	60      	RTS

Set to scroll list downward, draw row to scroll into view
C3/829E:	AD1242  	LDA $4212      ; PPU status
C3/82A1:	2940    	AND #$40       ; H-Blank?
C3/82A3:	F0F9    	BEQ $829E      ; Loop if not
C3/82A5:	A55A    	LDA $5A        ; Rows per page
C3/82A7:	18      	CLC            ; Prepare ADC
C3/82A8:	654A    	ADC $4A        ; Add scroll pos
C3/82AA:	8D1B21  	STA $211B      ; Set matrix A LB
C3/82AD:	9C1B21  	STZ $211B      ; Clear HB
C3/82B0:	A55B    	LDA $5B        ; Number of columns
C3/82B2:	8D1C21  	STA $211C      ; Set matrix B
C3/82B5:	8D1C21  	STA $211C      ; ...
C3/82B8:	AD3421  	LDA $2134      ; Product LB
C3/82BB:	85E5    	STA $E5        ; Set SW list slot
C3/82BD:	A549    	LDA $49        ; Top BG1 write row
C3/82BF:	18      	CLC            ; Prepare ADC
C3/82C0:	655A    	ADC $5A        ; Get bottom row +1
C3/82C2:	0A      	ASL A          ; x2 for blank rows
C3/82C3:	291F    	AND #$1F       ; Stay in limits
C3/82C5:	85E6    	STA $E6        ; Set BG1 write row
C3/82C7:	E64A    	INC $4A        ; Scroll pos +1
C3/82C9:	E649    	INC $49        ; Top BG1 row +1
C3/82CB:	20DD82  	JSR $82DD      ; Draw new row
C3/82CE:	A900    	LDA #$00       ; Min slot: 0
C3/82D0:	A08381  	LDY #$8183     ; C3/8183
C3/82D3:	207311  	JSR $1173      ; Queue scroll fn
C3/82D6:	A901    	LDA #$01       ; Anim mode: Down
C3/82D8:	9F49367E	STA $7E3649,X  ; Set scroll mode
C3/82DC:	60      	RTS

Draw list elements to scroll into view
C3/82DD:	7B      	TDC            ; Clear A
C3/82DE:	A52A    	LDA $2A        ; List type
C3/82E0:	0A      	ASL A          ; Double it
C3/82E1:	AA      	TAX            ; Index it
C3/82E2:	7CE582  	JMP ($82E5,X)  ; Draw row

Jump table for the above
C3/82E5:	A17F    	; Inventory
C3/82E7:	9E4F    	; Magic
C3/82E9:	5652    	; Lore
C3/82EB:	EE53    	; Rage
C3/82ED:	E354    	; Esper
C3/82EF:	E29C    	; Gear

Load common item's description and draw item count in Item menu
C3/82F1:	200883  	JSR $8308      ; Set desc ptrs
C3/82F4:	7B      	TDC            ; Clear A
C3/82F5:	A54B    	LDA $4B        ; Cursor slot
C3/82F7:	A8      	TAY            ; Index it
C3/82F8:	B96918  	LDA $1869,Y    ; Item in slot
C3/82FB:	203857  	JSR $5738      ; Load description
C3/82FE:	205683  	JSR $8356      ; Count items
C3/8301:	A920    	LDA #$20       ; Palette 0
C3/8303:	8529    	STA $29        ; Color: User's
C3/8305:	4C7A83  	JMP $837A      ; Draw item count

Prepare item description loading
C3/8308:	A2A07A  	LDX #$7AA0     ; ED/7AA0
C3/830B:	86E7    	STX $E7        ; Set ptr loc LBs
C3/830D:	A20064  	LDX #$6400     ; ED/6400
C3/8310:	86EB    	STX $EB        ; Set text loc LBs
C3/8312:	A9ED    	LDA #$ED       ; Bank: ED
C3/8314:	85E9    	STA $E9        ; Set ptr loc HB
C3/8316:	A9ED    	LDA #$ED       ; ...
C3/8318:	85ED    	STA $ED        ; Set text loc HB
C3/831A:	A2C99E  	LDX #$9EC9     ; 7E/9EC9
C3/831D:	8E8121  	STX $2181      ; Set WRAM LBs
C3/8320:	60      	RTS

Compute item data index
C3/8321:	48      	PHA            ; Save item
C3/8322:	AD1242  	LDA $4212      ; PPU status
C3/8325:	2940    	AND #$40       ; H-Blank?
C3/8327:	F0F9    	BEQ $8322      ; Loop if not
C3/8329:	68      	PLA            ; Item
C3/832A:	8D1B21  	STA $211B      ; Set matrix A LB
C3/832D:	9C1B21  	STZ $211B      ; Clear HB
C3/8330:	A91E    	LDA #$1E       ; Item data size
C3/8332:	8D1C21  	STA $211C      ; Set matrix B
C3/8335:	8D1C21  	STA $211C      ; ...
C3/8338:	60      	RTS

Load rare item's description and draw item count
C3/8339:	A260FB  	LDX #$FB60     ; CE/FB60
C3/833C:	86E7    	STX $E7        ; Set ptr loc LBs
C3/833E:	A2B0FC  	LDX #$FCB0     ; CE/FCB0
C3/8341:	86EB    	STX $EB        ; Set text loc LBs
C3/8343:	A9CE    	LDA #$CE       ; Bank: CE
C3/8345:	85E9    	STA $E9        ; Set ptr loc HB
C3/8347:	85ED    	STA $ED        ; Set text loc HB
C3/8349:	202A57  	JSR $572A      ; Load description
C3/834C:	206B83  	JSR $836B      ; Count items
C3/834F:	A920    	LDA #$20       ; Palette 0
C3/8351:	8529    	STA $29        ; Color: User's
C3/8353:	4C7A83  	JMP $837A      ; Draw item count

Count number of common items
C3/8356:	7B      	TDC            ; Clear A
C3/8357:	AA      	TAX            ; Item slot: 1
C3/8358:	A8      	TAY            ; Item count: 0
C3/8359:	BD6918  	LDA $1869,X    ; Item in slot
C3/835C:	C9FF    	CMP #$FF       ; None?
C3/835E:	F001    	BEQ $8361      ; Exclude if so
C3/8360:	C8      	INY            ; Item count +1
C3/8361:	E8      	INX            ; Item slot +1
C3/8362:	E00001  	CPX #$0100     ; Done all 256?
C3/8365:	D0F2    	BNE $8359      ; Loop if not
C3/8367:	98      	TYA            ; Get counter
C3/8368:	8564    	STA $64        ; Set item count
C3/836A:	60      	RTS

Count number of rare items
C3/836B:	7B      	TDC            ; Clear A
C3/836C:	AA      	TAX            ; Item slot: 1
C3/836D:	BF899D7E	LDA $7E9D89,X  ; Empty slot?
C3/8371:	3003    	BMI $8376      ; Branch if so
C3/8373:	E8      	INX            ; Item slot +1
C3/8374:	80F7    	BRA $836D      ; Check next slot
C3/8376:	8A      	TXA            ; Current slot
C3/8377:	8564    	STA $64        ; Set item count
C3/8379:	60      	RTS

Draw number of common or rare items
C3/837A:	A564    	LDA $64        ; Item count
C3/837C:	20E004  	JSR $04E0      ; Turn into text
C3/837F:	A2BF7A  	LDX #$7ABF     ; Text position
C3/8382:	4CC004  	JMP $04C0      ; Draw 3 digits

Blank item count in corner of Item menu
C3/8385:	A04A8E  	LDY #$8E4A     ; Text pointer
C3/8388:	4CF902  	JMP $02F9      ; Draw 3 spaces

Build and draw rare item list
C3/838B:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/838E:	209483  	JSR $8394      ; Build item list
C3/8391:	4CDE83  	JMP $83DE      ; Draw item list

Build rare item list
C3/8394:	A2899D  	LDX #$9D89     ; 7E/9D89
C3/8397:	8E8121  	STX $2181      ; Set WRAM LBs
C3/839A:	A01400  	LDY #$0014     ; Items: 20
C3/839D:	A9FF    	LDA #$FF       ; Empty item
C3/839F:	8D8021  	STA $2180      ; Add to list
C3/83A2:	88      	DEY            ; One less left
C3/83A3:	D0FA    	BNE $839F      ; Loop till last
C3/83A5:	A2899D  	LDX #$9D89     ; ...
C3/83A8:	8E8121  	STX $2181      ; Reset WRAM LBs
C3/83AB:	AEBA1E  	LDX $1EBA      ; Item packs A+B
C3/83AE:	86EF    	STX $EF        ; Memorize them
C3/83B0:	ADBC1E  	LDA $1EBC      ; Item pack C
C3/83B3:	85F1    	STA $F1        ; Memorize it
C3/83B5:	ADBD1E  	LDA $1EBD      ; ...
C3/83B8:	290F    	AND #$0F       ; ...
C3/83BA:	64F2    	STZ $F2        ; Clear pack D
C3/83BC:	7B      	TDC            ; Item: Cider
C3/83BD:	85E0    	STA $E0        ; Set as current
C3/83BF:	AA      	TAX            ; Pack index: 0
C3/83C0:	A904    	LDA #$04       ; Item packs: 4
C3/83C2:	85E1    	STA $E1        ; Set counter
C3/83C4:	A00800  	LDY #$0008     ; Items left: 8
C3/83C7:	B5EF    	LDA $EF,X      ; 8 owned items
C3/83C9:	6A      	ROR A          ; Got current?
C3/83CA:	48      	PHA            ; Save item pack
C3/83CB:	9005    	BCC $83D2      ; Skip if not
C3/83CD:	A5E0    	LDA $E0        ; Item number
C3/83CF:	8D8021  	STA $2180      ; Add to list
C3/83D2:	E6E0    	INC $E0        ; Item number +1
C3/83D4:	68      	PLA            ; 8 owned items
C3/83D5:	88      	DEY            ; One less item
C3/83D6:	D0F1    	BNE $83C9      ; Loop till last
C3/83D8:	E8      	INX            ; Pack index +1
C3/83D9:	C6E1    	DEC $E1        ; One less pack
C3/83DB:	D0E7    	BNE $83C4      ; Loop till last
C3/83DD:	60      	RTS

Draw rare item list
C3/83DE:	20F783  	JSR $83F7      ; Define $E6
C3/83E1:	64E5    	STZ $E5        ; Item slot: 1
C3/83E3:	A00A00  	LDY #$000A     ; Rows left: 10
C3/83E6:	5A      	PHY            ; Save counter
C3/83E7:	201B84  	JSR $841B      ; Draw 2 items
C3/83EA:	A5E6    	LDA $E6        ; BG1 write row
C3/83EC:	1A      	INC A          ; Go 1 row down
C3/83ED:	1A      	INC A          ; Go 1 row down
C3/83EE:	291F    	AND #$1F       ; Stay in limits
C3/83F0:	85E6    	STA $E6        ; Save changes
C3/83F2:	7A      	PLY            ; Rows left
C3/83F3:	88      	DEY            ; One less left
C3/83F4:	D0F0    	BNE $83E6      ; Loop till last
C3/83F6:	60      	RTS

Define BG1 row for drawing list, plus first onscreen list slot
C3/83F7:	A549    	LDA $49        ; Top BG1 write row
C3/83F9:	0A      	ASL A          ; x2 for blank rows
C3/83FA:	291F    	AND #$1F       ; Stay in limits
C3/83FC:	85E6    	STA $E6        ; Set BG1 write row
C3/83FE:	AD1242  	LDA $4212      ; PPU status
C3/8401:	2940    	AND #$40       ; H-Blank?
C3/8403:	F0F9    	BEQ $83FE      ; Loop if not
C3/8405:	A54A    	LDA $4A        ; Scroll position
C3/8407:	8D1B21  	STA $211B      ; Set matrix A LB
C3/840A:	9C1B21  	STZ $211B      ; Clear HB
C3/840D:	A55B    	LDA $5B        ; Number of columns
C3/840F:	8D1C21  	STA $211C      ; Set matrix B
C3/8412:	8D1C21  	STA $211C      ; ...
C3/8415:	AD3421  	LDA $2134      ; Product LB
C3/8418:	85E5    	STA $E5        ; Set list slot
C3/841A:	60      	RTS

Draw a row of two rare items
C3/841B:	A920    	LDA #$20       ; Palette 0
C3/841D:	8529    	STA $29        ; Color: User's
C3/841F:	203684  	JSR $8436      ; Define source
C3/8422:	A20300  	LDX #$0003     ; X: 3
C3/8425:	204584  	JSR $8445      ; Draw item A
C3/8428:	E6E5    	INC $E5        ; Item slot +1
C3/842A:	203684  	JSR $8436      ; Define source
C3/842D:	A21100  	LDX #$0011     ; X: 17
C3/8430:	204584  	JSR $8445      ; Draw item B
C3/8433:	E6E5    	INC $E5        ; Item slot +1
C3/8435:	60      	RTS

Set source for loading rare item name
C3/8436:	A00D00  	LDY #$000D     ; Letters: 13
C3/8439:	84EB    	STY $EB        ; Set src size
C3/843B:	A0A0FB  	LDY #$FBA0     ; CE/FBA0
C3/843E:	84EF    	STY $EF        ; Set src LBs
C3/8440:	A9CE    	LDA #$CE       ; Bank: CE
C3/8442:	85F1    	STA $F1        ; Set src HB
C3/8444:	60      	RTS

Draw rare item name
C3/8445:	A5E6    	LDA $E6        ; BG1 write row
C3/8447:	1A      	INC A          ; Go 1 row down
C3/8448:	209F80  	JSR $809F      ; Compute map ptr
C3/844B:	C220    	REP #$20       ; 16-bit A
C3/844D:	8A      	TXA            ; ...
C3/844E:	8F899E7E	STA $7E9E89    ; Set position
C3/8452:	E220    	SEP #$20       ; 8-bit A
C3/8454:	7B      	TDC            ; Clear A
C3/8455:	A5E5    	LDA $E5        ; Item slot
C3/8457:	AA      	TAX            ; Index it
C3/8458:	BF899D7E	LDA $7E9D89,X  ; Item in slot
C3/845C:	C9FF    	CMP #$FF       ; None?
C3/845E:	F006    	BEQ $8466      ; Exit if so
C3/8460:	206784  	JSR $8467      ; Load name
C3/8463:	4CD97F  	JMP $7FD9      ; Draw name
C3/8466:	60      	RTS

Load fixed-size string from table
C3/8467:	48      	PHA            ; Save name ID
C3/8468:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/846B:	8E8121  	STX $2181      ; Set WRAM LBs
C3/846E:	AD1242  	LDA $4212      ; PPU status
C3/8471:	2940    	AND #$40       ; H-Blank?
C3/8473:	F0F9    	BEQ $846E      ; Loop if not
C3/8475:	68      	PLA            ; Name number
C3/8476:	8D1B21  	STA $211B      ; Set matrix A LB
C3/8479:	9C1B21  	STZ $211B      ; Clear HB
C3/847C:	7B      	TDC            ; Clear A
C3/847D:	A5EB    	LDA $EB        ; String size
C3/847F:	8D1C21  	STA $211C      ; Set matrix B
C3/8482:	8D1C21  	STA $211C      ; ...
C3/8485:	AC3421  	LDY $2134      ; Index product
C3/8488:	A6EB    	LDX $EB        ; String size
C3/848A:	B7EF    	LDA [$EF],Y    ; Letter
C3/848C:	8D8021  	STA $2180      ; Add to string
C3/848F:	C8      	INY            ; Point to next
C3/8490:	CA      	DEX            ; One less left
C3/8491:	D0F7    	BNE $848A      ; Loop till last
C3/8493:	9C8021  	STZ $2180      ; End string
C3/8496:	60      	RTS

Handle double-clicked item
C3/8497:	7B      	TDC            ; Clear A
C3/8498:	A54B    	LDA $4B        ; Cursor slot
C3/849A:	8528    	STA $28        ; Set blinker's
C3/849C:	A8      	TAY            ; Index it
C3/849D:	B96918  	LDA $1869,Y    ; Selected item
C3/84A0:	C9FF    	CMP #$FF       ; Empty slot?
C3/84A2:	F06C    	BEQ $8510      ; Fail if so
C3/84A4:	C9EF    	CMP #$EF       ; Megalixir?
C3/84A6:	F068    	BEQ $8510      ; Fail if so...
C3/84A8:	202183  	JSR $8321      ; Compute index
C3/84AB:	AE3421  	LDX $2134      ; Load it
C3/84AE:	BF0050D8	LDA $D85000,X  ; Item properties
C3/84B2:	2907    	AND #$07       ; Get item class
C3/84B4:	C906    	CMP #$06       ; Consumable?
C3/84B6:	D05D    	BNE $8515      ; Branch if not
C3/84B8:	BF0050D8	LDA $D85000,X  ; Item properties
C3/84BC:	2940    	AND #$40       ; Usable in field?
C3/84BE:	F050    	BEQ $8510      ; Fail if not
C3/84C0:	7B      	TDC            ; ...
C3/84C1:	A528    	LDA $28        ; Selected slot
C3/84C3:	A8      	TAY            ; Index it
C3/84C4:	B96918  	LDA $1869,Y    ; Item in slot
C3/84C7:	C9F7    	CMP #$F7       ; Tent?
C3/84C9:	F02D    	BEQ $84F8      ; Branch if so
C3/84CB:	C9F6    	CMP #$F6       ; Sleeping Bag?
C3/84CD:	F013    	BEQ $84E2      ; Branch if so
C3/84CF:	C9FD    	CMP #$FD       ; Warp Stone?
C3/84D1:	F018    	BEQ $84EB      ; Branch if so
C3/84D3:	A44F    	LDY $4F        ; Cursor position
C3/84D5:	848E    	STY $8E        ; Set return loc
C3/84D7:	A54A    	LDA $4A        ; Scroll position
C3/84D9:	8590    	STA $90        ; Set return loc
C3/84DB:	A96F    	LDA #$6F       ; C3/8A84
C3/84DD:	8527    	STA $27        ; Queue usage menu
C3/84DF:	6426    	STZ $26        ; Next: Fade-out
C3/84E1:	60      	RTS

Fork: Sleeping Bag
C3/84E2:	85E6    	STA $E6        ; Memorize item
C3/84E4:	AD0102  	LDA $0201      ; Can save here?
C3/84E7:	1027    	BPL $8510      ; Fail if not
C3/84E9:	80E8    	BRA $84D3      ; Queue usage menu

Fork: Warp Stone
C3/84EB:	85E6    	STA $E6        ; Memorize item
C3/84ED:	AD0102  	LDA $0201      ; Area permissions
C3/84F0:	8902    	BIT #$02       ; Can warp here?
C3/84F2:	F01C    	BEQ $8510      ; Fail if not
C3/84F4:	A903    	LDA #$03       ; Event: Warp
C3/84F6:	8009    	BRA $8501      ; Destroy item

Fork: Tent
C3/84F8:	85E6    	STA $E6        ; Memorize item
C3/84FA:	AD0102  	LDA $0201      ; Can save here?
C3/84FD:	1011    	BPL $8510      ; Fail if not
C3/84FF:	A902    	LDA #$02       ; Event: Tent
C3/8501:	8D0502  	STA $0205      ; Set aftereffect
C3/8504:	A5E6    	LDA $E6        ; Item
C3/8506:	20979D  	JSR $9D97      ; Destroy it
C3/8509:	A9FF    	LDA #$FF       ; Null value
C3/850B:	8527    	STA $27        ; Queue menu exit
C3/850D:	6426    	STZ $26        ; Next: Fade-out
C3/850F:	60      	RTS

Fork: Unusable consumable
C3/8510:	A908    	LDA #$08       ; C3/1EF7
C3/8512:	8526    	STA $26        ; Next: Choice 1
C3/8514:	60      	RTS

Fork: Compile gear's compatible actors
C3/8515:	A0899D  	LDY #$9D89     ; 7E/9D89
C3/8518:	8C8121  	STY $2181      ; Set WRAM LBs
C3/851B:	C900    	CMP #$00       ; Tool class?
C3/851D:	F0F1    	BEQ $8510      ; Abort if so
C3/851F:	64E0    	STZ $E0        ; Current: Terra
C3/8521:	C220    	REP #$20       ; 16-bit A
C3/8523:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/8527:	A600    	LDX $00        ; Actors done: 0
C3/8529:	4A      	LSR A          ; Actor can use?
C3/852A:	900B    	BCC $8537      ; Skip if not
C3/852C:	48      	PHA            ; Save compat.
C3/852D:	E220    	SEP #$20       ; 8-bit A
C3/852F:	A5E0    	LDA $E0        ; Current actor
C3/8531:	8D8021  	STA $2180      ; Add to list
C3/8534:	C220    	REP #$20       ; 16-bit A
C3/8536:	68      	PLA            ; Compatibility
C3/8537:	E220    	SEP #$20       ; 8-bit A
C3/8539:	E6E0    	INC $E0        ; Actor number +1
C3/853B:	C220    	REP #$20       ; 16-bit A
C3/853D:	E8      	INX            ; Actors done +1
C3/853E:	E00E00  	CPX #$000E     ; Done all 14?
C3/8541:	D0E6    	BNE $8529      ; Loop if not
C3/8543:	E220    	SEP #$20       ; 8-bit A
C3/8545:	A9FF    	LDA #$FF       ; Terminator
C3/8547:	8D8021  	STA $2180      ; End list

Fork: Initialize gear data menu
C3/854A:	C220    	REP #$20       ; 16-bit A
C3/854C:	A9E000  	LDA #$00E0     ; BG1 H-Shift: 224
C3/854F:	8F109A7E	STA $7E9A10    ; Hide item list
C3/8553:	A98D7D  	LDA #$7D8D     ; Tilemap ptr
C3/8556:	8F899E7E	STA $7E9E89    ; Set item pos
C3/855A:	E220    	SEP #$20       ; 8-bit A
C3/855C:	A904    	LDA #$04       ; Cursor: Blank
C3/855E:	1445    	TRB $45        ; Set menu flag
C3/8560:	208C85  	JSR $858C      ; Stop desc/bar
C3/8563:	209585  	JSR $8595      ; Create arrow
C3/8566:	7B      	TDC            ; ...
C3/8567:	A54B    	LDA $4B        ; Item's slot
C3/8569:	A8      	TAY            ; Index it
C3/856A:	20B980  	JSR $80B9      ; Load "<item>:"
C3/856D:	20AD85  	JSR $85AD      ; Add "can be..."
C3/8570:	A92C    	LDA #$2C       ; Palette 3
C3/8572:	8529    	STA $29        ; Color: Blue
C3/8574:	20D97F  	JSR $7FD9      ; Draw string
C3/8577:	A920    	LDA #$20       ; Palette 0
C3/8579:	8529    	STA $29        ; Color: User's
C3/857B:	20D585  	JSR $85D5      ; Draw actor list
C3/857E:	207186  	JSR $8671      ; Draw other info
C3/8581:	20250F  	JSR $0F25      ; Queue text upload
C3/8584:	20890F  	JSR $0F89      ; Dequeue desc DMA
C3/8587:	A964    	LDA #$64       ; C3/8983
C3/8589:	8526    	STA $26        ; Next: Sustain menu
C3/858B:	60      	RTS

Disable scrollbar and freeze description
C3/858C:	A9C0    	LDA #$C0       ; Scrollbar: Off
C3/858E:	1446    	TRB $46        ; Set anim index
C3/8590:	A910    	LDA #$10       ; Reset/Stop desc
C3/8592:	0445    	TSB $45        ; Set menu flag
C3/8594:	60      	RTS

Create arrow for gear data menu
C3/8595:	A901    	LDA #$01       ; Status: On
C3/8597:	8599    	STA $99        ; Enable arrow
C3/8599:	A901    	LDA #$01       ; Min slot: 8
C3/859B:	A0197A  	LDY #$7A19     ; C3/7A19
C3/859E:	207311  	JSR $1173      ; Queue OAM fn
C3/85A1:	A980    	LDA #$80       ; Y: 128
C3/85A3:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/85A7:	7B      	TDC            ; ...
C3/85A8:	9F4B347E	STA $7E344B,X  ; No use...
C3/85AC:	60      	RTS

Add " can be used by:" after item name
C3/85AD:	A20100  	LDX #$0001     ; Skip item icon
C3/85B0:	BF8B9E7E	LDA $7E9E8B,X  ; Item letter
C3/85B4:	C9FF    	CMP #$FF       ; Terminator?
C3/85B6:	D015    	BNE $85CD      ; Branch if not
C3/85B8:	A400    	LDY $00        ; ROM index: 0
C3/85BA:	DA      	PHX            ; Save RAM index
C3/85BB:	BB      	TYX            ; ROM index
C3/85BC:	BF348DC3	LDA $C38D34,X  ; Message letter
C3/85C0:	FA      	PLX            ; RAM index
C3/85C1:	9F8B9E7E	STA $7E9E8B,X  ; Add to string
C3/85C5:	E8      	INX            ; RAM index +1
C3/85C6:	C8      	INY            ; ROM index +1
C3/85C7:	C01100  	CPY #$0011     ; Done 17 chars?
C3/85CA:	D0EE    	BNE $85BA      ; Loop if not
C3/85CC:	60      	RTS

Fork: Check next letter from item name
C3/85CD:	E8      	INX            ; RAM index +1
C3/85CE:	E00D00  	CPX #$000D     ; Done 12 chars?
C3/85D1:	D0DD    	BNE $85B0      ; Loop if not
C3/85D3:	80E3    	BRA $85B8      ; Load "can..."

Filter and draw gear's list of compatible actors
C3/85D5:	A2099E  	LDX #$9E09     ; 7E/9E09
C3/85D8:	8E8121  	STX $2181      ; Set WRAM LBs
C3/85DB:	A600    	LDX $00        ; List slot: 1
C3/85DD:	BF899D7E	LDA $7E9D89,X  ; Eligible actor
C3/85E1:	3040    	BMI $8623      ; Branch if end
C3/85E3:	85E5    	STA $E5        ; Memorize actor
C3/85E5:	A400    	LDY $00        ; Actor slot: 1
C3/85E7:	84E7    	STY $E7        ; Save actor slot

Fork: Exclude if never recruited or dead Shadow
C3/85E9:	86F3    	STX $F3        ; Save list slot
C3/85EB:	A5E5    	LDA $E5        ; Eligible actor
C3/85ED:	D90016  	CMP $1600,Y    ; In actor slot?
C3/85F0:	D018    	BNE $860A      ; Try next if not
C3/85F2:	C220    	REP #$20       ; 16-bit A
C3/85F4:	A5E7    	LDA $E7        ; Actor slot
C3/85F6:	0A      	ASL A          ; Double it
C3/85F7:	AA      	TAX            ; Index it
C3/85F8:	ADDC1E  	LDA $1EDC      ; Showable actors
C3/85FB:	3F679CC3	AND $C39C67,X  ; Has our actor?
C3/85FF:	E220    	SEP #$20       ; 8-bit A
C3/8601:	F018    	BEQ $861B      ; Skip if not
C3/8603:	A5E7    	LDA $E7        ; Actor slot
C3/8605:	8D8021  	STA $2180      ; Add to new list
C3/8608:	8011    	BRA $861B      ; Do next actor

Fork: Try next actor in SRAM block
C3/860A:	C221    	REP #$21       ; 16-bit A; C-
C3/860C:	98      	TYA            ; Actor's address
C3/860D:	692500  	ADC #$0025     ; Point to next
C3/8610:	A8      	TAY            ; Reindex it
C3/8611:	E220    	SEP #$20       ; 8-bit A
C3/8613:	E6E7    	INC $E7        ; Actor slot +1
C3/8615:	A5E7    	LDA $E7        ; Actor slot
C3/8617:	C910    	CMP #$10       ; Done all 16?
C3/8619:	D0CE    	BNE $85E9      ; Loop if not

Fork: Handle next eligible actor
C3/861B:	A6F3    	LDX $F3        ; List slot
C3/861D:	E8      	INX            ; List slot +1
C3/861E:	E01000  	CPX #$0010     ; Done all 16?
C3/8621:	D0BA    	BNE $85DD      ; Loop if not

Fork: End and draw new list
C3/8623:	A9FF    	LDA #$FF       ; Terminator
C3/8625:	8D8021  	STA $2180      ; End list
C3/8628:	A600    	LDX $00        ; List slot: 1
C3/862A:	7B      	TDC            ; Clear A
C3/862B:	BF099E7E	LDA $7E9E09,X  ; Actor in slot
C3/862F:	3021    	BMI $8652      ; Exit if none
C3/8631:	DA      	PHX            ; Save slot
C3/8632:	DA      	PHX            ; Save slot
C3/8633:	C220    	REP #$20       ; 16-bit A
C3/8635:	0A      	ASL A          ; Actor x2
C3/8636:	AA      	TAX            ; Index it
C3/8637:	BF6969C3	LDA $C36969,X  ; Actor address
C3/863B:	8567    	STA $67        ; Memorize it
C3/863D:	FA      	PLX            ; List slot
C3/863E:	8A      	TXA            ; Put in A
C3/863F:	0A      	ASL A          ; Double it
C3/8640:	AA      	TAX            ; Index it
C3/8641:	BF5386C3	LDA $C38653,X  ; Position
C3/8645:	A8      	TAY            ; Put in Y
C3/8646:	E220    	SEP #$20       ; 8-bit A
C3/8648:	20CF34  	JSR $34CF      ; Draw name
C3/864B:	FA      	PLX            ; List slot
C3/864C:	E8      	INX            ; List slot +1
C3/864D:	E00E00  	CPX #$000E     ; Done all 14?
C3/8650:	D0D8    	BNE $862A      ; Loop if not
C3/8652:	60      	RTS

Text positions for gear data menu
C3/8653:	0F7E    	; Actor name 1
C3/8655:	237E    	; Actor name 2
C3/8657:	377E    	; Actor name 3
C3/8659:	8F7E    	; Actor name 4
C3/865B:	A37E    	; Actor name 5
C3/865D:	B77E    	; Actor name 6
C3/865F:	0F7F    	; Actor name 7
C3/8661:	237F    	; Actor name 8
C3/8663:	377F    	; Actor name 9
C3/8665:	8F7F    	; Actor name 10
C3/8667:	A37F    	; Actor name 11
C3/8669:	B77F    	; Actor name 12
C3/866B:	0F80    	; Actor name 13
C3/866D:	2380    	; Actor name 14
C3/866F:	3780    	; Actor name 15 (unused)

Draw all gear info except compatible actors
C3/8671:	20416A  	JSR $6A41      ; Clear BG3 map B
C3/8674:	A92C    	LDA #$2C       ; Palette 3
C3/8676:	8529    	STA $29        ; Color: Blue
C3/8678:	A2458D  	LDX #$8D45     ; Text ptrs loc
C3/867B:	A01C00  	LDY #$001C     ; Strings: 14
C3/867E:	20BA69  	JSR $69BA      ; Draw Vigor, etc.
C3/8681:	A92C    	LDA #$2C       ; ...
C3/8683:	8529    	STA $29        ; ...
C3/8685:	A2618D  	LDX #$8D61     ; Text ptrs loc
C3/8688:	A00800  	LDY #$0008     ; Strings: 4
C3/868B:	20BA69  	JSR $69BA      ; Draw Speed, etc.

Fork: Draw stat modifiers
C3/868E:	A920    	LDA #$20       ; Palette 0
C3/8690:	8529    	STA $29        ; Color: User's
C3/8692:	7B      	TDC            ; Clear A
C3/8693:	A54B    	LDA $4B        ; Selected slot
C3/8695:	A8      	TAY            ; Index it
C3/8696:	B96918  	LDA $1869,Y    ; Item in slot
C3/8699:	202183  	JSR $8321      ; Compute index
C3/869C:	AE3421  	LDX $2134      ; Load it
C3/869F:	7B      	TDC            ; Terminator
C3/86A0:	8F8D9E7E	STA $7E9E8D    ; Set mod B3
C3/86A4:	8F8E9E7E	STA $7E9E8E    ; Set mod B4
C3/86A8:	C220    	REP #$20       ; 16-bit A
C3/86AA:	A94584  	LDA #$8445     ; Tilemap ptr
C3/86AD:	8F899E7E	STA $7E9E89    ; Set position
C3/86B1:	E220    	SEP #$20       ; 8-bit A
C3/86B3:	7B      	TDC            ; Clear A
C3/86B4:	BF1050D8	LDA $D85010,X  ; Stat mods LB
C3/86B8:	48      	PHA            ; Memorize them
C3/86B9:	290F    	AND #$0F       ; Vigor index
C3/86BB:	0A      	ASL A          ; Double it
C3/86BC:	203688  	JSR $8836      ; Draw modifier
C3/86BF:	C220    	REP #$20       ; 16-bit A
C3/86C1:	A9C584  	LDA #$84C5     ; Tilemap ptr
C3/86C4:	8F899E7E	STA $7E9E89    ; Set position
C3/86C8:	E220    	SEP #$20       ; 8-bit A
C3/86CA:	7B      	TDC            ; Clear A
C3/86CB:	68      	PLA            ; Stat mods LB
C3/86CC:	29F0    	AND #$F0       ; Speed index
C3/86CE:	4A      	LSR A          ; Put in b3-b6
C3/86CF:	4A      	LSR A          ; Put in b2-b5
C3/86D0:	4A      	LSR A          ; Put in b1-b4
C3/86D1:	203688  	JSR $8836      ; Draw modifier
C3/86D4:	C220    	REP #$20       ; 16-bit A
C3/86D6:	A94585  	LDA #$8545     ; Tilemap ptr
C3/86D9:	8F899E7E	STA $7E9E89    ; Set position
C3/86DD:	E220    	SEP #$20       ; 8-bit A
C3/86DF:	AE3421  	LDX $2134      ; Item index
C3/86E2:	7B      	TDC            ; Clear A
C3/86E3:	BF1150D8	LDA $D85011,X  ; Stats mods HB
C3/86E7:	48      	PHA            ; Memorize them
C3/86E8:	290F    	AND #$0F       ; Stamina index
C3/86EA:	0A      	ASL A          ; Double it
C3/86EB:	203688  	JSR $8836      ; Draw modifier
C3/86EE:	C220    	REP #$20       ; 16-bit A
C3/86F0:	A9C585  	LDA #$85C5     ; Tilemap ptr
C3/86F3:	8F899E7E	STA $7E9E89    ; Set position
C3/86F7:	E220    	SEP #$20       ; 8-bit A
C3/86F9:	7B      	TDC            ; Clear A
C3/86FA:	68      	PLA            ; Stat mods HB
C3/86FB:	29F0    	AND #$F0       ; Mag.Pwr index
C3/86FD:	4A      	LSR A          ; Put in b3-b6
C3/86FE:	4A      	LSR A          ; Put in b2-b5
C3/86FF:	4A      	LSR A          ; Put in b1-b4
C3/8700:	203688  	JSR $8836      ; Draw modifier

Fork: Draw defensive properties
C3/8703:	AE3421  	LDX $2134      ; Item index
C3/8706:	BF0050D8	LDA $D85000,X  ; Properties
C3/870A:	2907    	AND #$07       ; Get class
C3/870C:	C901    	CMP #$01       ; Weapon?
C3/870E:	F036    	BEQ $8746      ; Branch if so
C3/8710:	BF1450D8	LDA $D85014,X  ; Defense
C3/8714:	20E004  	JSR $04E0      ; Turn into text
C3/8717:	A2C386  	LDX #$86C3     ; Text position
C3/871A:	20C004  	JSR $04C0      ; Draw 3 digits
C3/871D:	AE3421  	LDX $2134      ; Item index
C3/8720:	BF1550D8	LDA $D85015,X  ; Mag.Def
C3/8724:	20E004  	JSR $04E0      ; Turn into text
C3/8727:	A2C387  	LDX #$87C3     ; Text position
C3/872A:	20C004  	JSR $04C0      ; Draw 3 digits
C3/872D:	20EB87  	JSR $87EB      ; Draw evasions
C3/8730:	20A088  	JSR $88A0      ; Draw 50% elems
C3/8733:	205989  	JSR $8959      ; Draw other ones
C3/8736:	A92C    	LDA #$2C       ; Palette 3
C3/8738:	8529    	STA $29        ; Color: Blue
C3/873A:	A2698D  	LDX #$8D69     ; Text ptrs loc
C3/873D:	A00800  	LDY #$0008     ; Strings: 4
C3/8740:	20BA69  	JSR $69BA      ; Draw elem types
C3/8743:	4CC787  	JMP $87C7      ; Do spell taught

Fork: Draw offensive properties
C3/8746:	209C87  	JSR $879C      ; Draw Bat.Pwr
C3/8749:	20EB87  	JSR $87EB      ; Draw evasions
C3/874C:	A92C    	LDA #$2C       ; Palette 3
C3/874E:	8529    	STA $29        ; Color: Blue
C3/8750:	A01D8E  	LDY #$8E1D     ; Text pointer
C3/8753:	20F902  	JSR $02F9      ; Draw "Attack"
C3/8756:	20A088  	JSR $88A0      ; Draw elements
C3/8759:	A920    	LDA #$20       ; Palette 0
C3/875B:	8529    	STA $29        ; Color: User's
C3/875D:	AE3421  	LDX $2134      ; Item index
C3/8760:	BF1350D8	LDA $D85013,X  ; Allows Runic?
C3/8764:	1008    	BPL $876E      ; Branch if not
C3/8766:	A0308E  	LDY #$8E30     ; Text pointer
C3/8769:	84E7    	STY $E7        ; Set src LBs
C3/876B:	209587  	JSR $8795      ; Draw "Runic"
C3/876E:	AE3421  	LDX $2134      ; Item index
C3/8771:	BF1350D8	LDA $D85013,X  ; Properties
C3/8775:	2940    	AND #$40       ; 2-hand OK?
C3/8777:	F008    	BEQ $8781      ; Branch if not
C3/8779:	A0388E  	LDY #$8E38     ; Text pointer
C3/877C:	84E7    	STY $E7        ; Set src LBs
C3/877E:	209587  	JSR $8795      ; Draw "2-hand"
C3/8781:	AE3421  	LDX $2134      ; Item index
C3/8784:	BF1350D8	LDA $D85013,X  ; Properties
C3/8788:	2902    	AND #$02       ; Can SwdTech?
C3/878A:	F008    	BEQ $8794      ; Exit if not
C3/878C:	A0268E  	LDY #$8E26     ; Text pointer
C3/878F:	84E7    	STY $E7        ; Set src LBs
C3/8791:	209587  	JSR $8795      ; Draw "SwdTech"
C3/8794:	60      	RTS

Draw string for the above
C3/8795:	A9C3    	LDA #$C3       ; Bank: C3
C3/8797:	85E9    	STA $E9        ; Set src HB
C3/8799:	4CFF02  	JMP $02FF      ; Draw text

Draw weapon's Bat.Pwr in gear data menu
C3/879C:	7B      	TDC            ; Clear A
C3/879D:	A54B    	LDA $4B        ; Clicked slot
C3/879F:	A8      	TAY            ; Index it
C3/87A0:	B96918  	LDA $1869,Y    ; Item in slot
C3/87A3:	C91C    	CMP #$1C       ; Atma Weapon?
C3/87A5:	F019    	BEQ $87C0      ; Hide if so
C3/87A7:	C916    	CMP #$16       ; Soul Sabre?
C3/87A9:	F015    	BEQ $87C0      ; Hide if so
C3/87AB:	C951    	CMP #$51       ; Dice?
C3/87AD:	F011    	BEQ $87C0      ; Hide if so
C3/87AF:	C952    	CMP #$52       ; Fixed Dice?
C3/87B1:	F00D    	BEQ $87C0      ; Hide if so
C3/87B3:	BF1450D8	LDA $D85014,X  ; Bat.Pwr
C3/87B7:	20E004  	JSR $04E0      ; Turn into text
C3/87BA:	A24386  	LDX #$8643     ; Text position
C3/87BD:	4CC004  	JMP $04C0      ; Draw 3 digits

Fork: Hide power
C3/87C0:	A0718D  	LDY #$8D71     ; Text pointer
C3/87C3:	20F902  	JSR $02F9      ; Draw "???"
C3/87C6:	60      	RTS

Draw spell taught by armor, including learning rate
C3/87C7:	A920    	LDA #$20       ; Palette 0
C3/87C9:	8529    	STA $29        ; Color: User's
C3/87CB:	AE3421  	LDX $2134      ; Item index
C3/87CE:	BF0350D8	LDA $D85003,X  ; Learning rate
C3/87D2:	F016    	BEQ $87EA      ; Exit if 0
C3/87D4:	85E0    	STA $E0        ; Memorize it
C3/87D6:	BF0450D8	LDA $D85004,X  ; Spell taught
C3/87DA:	85E1    	STA $E1        ; Memorize it
C3/87DC:	C220    	REP #$20       ; 16-bit A
C3/87DE:	A92F83  	LDA #$832F     ; Tilemap ptr
C3/87E1:	8F899E7E	STA $7E9E89    ; Set position
C3/87E5:	E220    	SEP #$20       ; 8-bit A
C3/87E7:	20ED5A  	JSR $5AED      ; Draw string
C3/87EA:	60      	RTS

Draw Evade and MBlock modifiers for gear data menu
C3/87EB:	C220    	REP #$20       ; 16-bit A
C3/87ED:	A94387  	LDA #$8743     ; Tilemap ptr
C3/87F0:	8F899E7E	STA $7E9E89    ; Set position
C3/87F4:	E220    	SEP #$20       ; 8-bit A
C3/87F6:	AE3421  	LDX $2134      ; Item index
C3/87F9:	7B      	TDC            ; Clear A
C3/87FA:	BF1A50D8	LDA $D8501A,X  ; Evasion mods
C3/87FE:	48      	PHA            ; Memorize them
C3/87FF:	290F    	AND #$0F       ; Evade index
C3/8801:	0A      	ASL A          ; x2
C3/8802:	0A      	ASL A          ; x4
C3/8803:	201A88  	JSR $881A      ; Draw modifier
C3/8806:	C220    	REP #$20       ; 16-bit A
C3/8808:	A94388  	LDA #$8843     ; Tilemap ptr
C3/880B:	8F899E7E	STA $7E9E89    ; Set position
C3/880F:	E220    	SEP #$20       ; 8-bit A
C3/8811:	AE3421  	LDX $2134      ; Item index
C3/8814:	7B      	TDC            ; Clear A
C3/8815:	68      	PLA            ; Evasion mods
C3/8816:	29F0    	AND #$F0       ; MBlock index
C3/8818:	4A      	LSR A          ; 2
C3/8819:	4A      	LSR A          ; 4
C3/881A:	AA      	TAX            ; Index it
C3/881B:	BF5488C3	LDA $C38854,X  ; Sign
C3/881F:	8F8B9E7E	STA $7E9E8B    ; Add to string
C3/8823:	BF5588C3	LDA $C38855,X  ; Tens digit
C3/8827:	8F8C9E7E	STA $7E9E8C    ; Add to string
C3/882B:	BF5688C3	LDA $C38856,X  ; Ones digit
C3/882F:	8F8D9E7E	STA $7E9E8D    ; Add to string
C3/8833:	4C4788  	JMP $8847      ; Draw modifier

Draw a non-evasion stat modifier for gear data menu
C3/8836:	AA      	TAX            ; Modifier index
C3/8837:	BF8088C3	LDA $C38880,X  ; Sign
C3/883B:	8F8B9E7E	STA $7E9E8B    ; Add to string
C3/883F:	BF8188C3	LDA $C38881,X  ; Digit
C3/8843:	8F8C9E7E	STA $7E9E8C    ; Add to string
C3/8847:	A0899E  	LDY #$9E89     ; 7E/9E89
C3/884A:	84E7    	STY $E7        ; Set src LBs
C3/884C:	A97E    	LDA #$7E       ; Bank: 7E
C3/884E:	85E9    	STA $E9        ; Set src HB
C3/8850:	20FF02  	JSR $02FF      ; Draw modifier
C3/8853:	60      	RTS

Text for evasion modifiers
C3/8854:	FFFFB400	;   0
C3/8858:	CAB5B400	; +10
C3/885C:	CAB6B400	; +20
C3/8860:	CAB7B400	; +30
C3/8864:	CAB8B400	; +40
C3/8868:	CAB9B400	; +50
C3/886C:	C4B5B400	; -10
C3/8870:	C4B6B400	; -20
C3/8874:	C4B7B400	; -30
C3/8878:	C4B8B400	; -40
C3/887C:	C4B9B400	; -50

Text for non-evasion stat modifiers
C3/8880:	FFB4    	;  0
C3/8882:	CAB5    	; +1
C3/8884:	CAB6    	; +2
C3/8886:	CAB7    	; +3
C3/8888:	CAB8    	; +4
C3/888A:	CAB9    	; +5
C3/888C:	CABA    	; +6
C3/888E:	CABB    	; +7
C3/8890:	FFB4    	;  0 (unused)
C3/8892:	C4B5    	; -1
C3/8894:	C4B6    	; -2
C3/8896:	C4B7    	; -3
C3/8898:	C4B8    	; -4
C3/889A:	C4B9    	; -5
C3/889C:	C4BA    	; -6
C3/889E:	C4BB    	; -7

Build and draw list of attack or halved elements
C3/88A0:	AE3421  	LDX $2134      ; Item index
C3/88A3:	7B      	TDC            ; ...
C3/88A4:	BF0F50D8	LDA $D8500F,X  ; Elements
C3/88A8:	20AE88  	JSR $88AE      ; Build list
C3/88AB:	4CCE88  	JMP $88CE      ; Draw list

Build current list of elements
C3/88AE:	A08DAA  	LDY #$AA8D     ; 7E/AA8D
C3/88B1:	8C8121  	STY $2181      ; Set WRAM LBs
C3/88B4:	64E0    	STZ $E0        ; Current: Water
C3/88B6:	A00800  	LDY #$0008     ; Elements: 8
C3/88B9:	2A      	ROL A          ; Draw current?
C3/88BA:	9007    	BCC $88C3      ; Skip it if not
C3/88BC:	48      	PHA            ; Save elements
C3/88BD:	A5E0    	LDA $E0        ; Current element
C3/88BF:	8D8021  	STA $2180      ; Add to list
C3/88C2:	68      	PLA            ; Elements left
C3/88C3:	E6E0    	INC $E0        ; Elem number +1
C3/88C5:	88      	DEY            ; One less left
C3/88C6:	D0F1    	BNE $88B9      ; Loop till last
C3/88C8:	A9FF    	LDA #$FF       ; Terminator
C3/88CA:	8D8021  	STA $2180      ; End list
C3/88CD:	60      	RTS

Draw list of attack or halved elements
C3/88CE:	A2CD7B  	LDX #$7BCD     ; Tilemap ptr
C3/88D1:	86EB    	STX $EB        ; Set dest LBs
C3/88D3:	A97E    	LDA #$7E       ; Bank: 7E
C3/88D5:	85ED    	STA $ED        ; Set dest HB
C3/88D7:	4CFE88  	JMP $88FE      ; Draw list

Draw list of absorbed elements
C3/88DA:	A2E97B  	LDX #$7BE9     ; Tilemap ptr
C3/88DD:	86EB    	STX $EB        ; Set dest LBs
C3/88DF:	A97E    	LDA #$7E       ; Bank: 7E
C3/88E1:	85ED    	STA $ED        ; Set dest HB
C3/88E3:	4CFE88  	JMP $88FE      ; Draw list

Draw list of nulled elements
C3/88E6:	A2CD7C  	LDX #$7CCD     ; Tilemap ptr
C3/88E9:	86EB    	STX $EB        ; Set dest LBs
C3/88EB:	A97E    	LDA #$7E       ; Bank: 7E
C3/88ED:	85ED    	STA $ED        ; Set dest HB
C3/88EF:	4CFE88  	JMP $88FE      ; Draw list

Draw list of elemental weaknesses
C3/88F2:	A2E97C  	LDX #$7CE9     ; Tilemap ptr
C3/88F5:	86EB    	STX $EB        ; Set dest LBs
C3/88F7:	A97E    	LDA #$7E       ; Bank: 7E
C3/88F9:	85ED    	STA $ED        ; Set dest HB
C3/88FB:	4CFE88  	JMP $88FE      ; ...

Draw current list of elements
C3/88FE:	7B      	TDC            ; Clear A
C3/88FF:	AA      	TAX            ; Index: 0
C3/8900:	7B      	TDC            ; Clear A
C3/8901:	BF8DAA7E	LDA $7EAA8D,X  ; Element to draw
C3/8905:	301F    	BMI $8926      ; Exit if no more
C3/8907:	DA      	PHX            ; Save list index
C3/8908:	C220    	REP #$20       ; 16-bit A
C3/890A:	0A      	ASL A          ; Element x2
C3/890B:	AA      	TAX            ; Index it
C3/890C:	BF2789C3	LDA $C38927,X  ; Tilemap data
C3/8910:	85E0    	STA $E0        ; Memorize it
C3/8912:	203789  	JSR $8937      ; Draw element
C3/8915:	A5EB    	LDA $EB        ; Tilemap ptr
C3/8917:	18      	CLC            ; ...
C3/8918:	690400  	ADC #$0004     ; Skip 2 tiles
C3/891B:	85EB    	STA $EB        ; Save changes
C3/891D:	E220    	SEP #$20       ; 8-bit A
C3/891F:	FA      	PLX            ; List index
C3/8920:	E8      	INX            ; List index +1
C3/8921:	E00600  	CPX #$0006     ; Done 6 entries?
C3/8924:	D0DA    	BNE $8900      ; Loop if not
C3/8926:	60      	RTS

Base tile attributes for each element
C3/8927:	8035    	; Water
C3/8929:	8435    	; Earth
C3/892B:	8835    	; Pearl
C3/892D:	8C35    	; Wind
C3/892F:	9035    	; Poison
C3/8931:	9435    	; Lightning
C3/8933:	9835    	; Ice
C3/8935:	9C35    	; Fire

Draw current element
C3/8937:	7B      	TDC            ; Clear A
C3/8938:	A8      	TAY            ; Map ptr: NW
C3/8939:	A5E0    	LDA $E0        ; Attributes
C3/893B:	97EB    	STA [$EB],Y    ; Set NW tile
C3/893D:	E6E0    	INC $E0        ; Tile num +1
C3/893F:	A04000  	LDY #$0040     ; Map ptr: SW
C3/8942:	A5E0    	LDA $E0        ; Attributes
C3/8944:	97EB    	STA [$EB],Y    ; Set SW tile
C3/8946:	E6E0    	INC $E0        ; Tile num +1
C3/8948:	A00200  	LDY #$0002     ; Map ptr: NE
C3/894B:	A5E0    	LDA $E0        ; Attributes
C3/894D:	97EB    	STA [$EB],Y    ; Set NE tile
C3/894F:	E6E0    	INC $E0        ; Tile num +1
C3/8951:	A04200  	LDY #$0042     ; Map ptr: SE
C3/8954:	A5E0    	LDA $E0        ; Attributes
C3/8956:	97EB    	STA [$EB],Y    ; Set SE tile
C3/8958:	60      	RTS

Build and draw list of absorbed, nulled, and weak elements
C3/8959:	AE3421  	LDX $2134      ; Item index
C3/895C:	7B      	TDC            ; ...
C3/895D:	BF1650D8	LDA $D85016,X  ; Absorbed elements
C3/8961:	20AE88  	JSR $88AE      ; Build list
C3/8964:	20DA88  	JSR $88DA      ; Draw list
C3/8967:	AE3421  	LDX $2134      ; Item index
C3/896A:	7B      	TDC            ; ...
C3/896B:	BF1750D8	LDA $D85017,X  ; Nulled elements
C3/896F:	20AE88  	JSR $88AE      ; Build list
C3/8972:	20E688  	JSR $88E6      ; Draw list
C3/8975:	AE3421  	LDX $2134      ; Item index
C3/8978:	7B      	TDC            ; ...
C3/8979:	BF1850D8	LDA $D85018,X  ; Weak points
C3/897D:	20AE88  	JSR $88AE      ; Build list
C3/8980:	4CF288  	JMP $88F2      ; Draw list

64: Sustain non-shifted gear data menu
C3/8983:	A508    	LDA $08        ; No-autofire keys
C3/8985:	8980    	BIT #$80       ; Pushing A?
C3/8987:	D006    	BNE $898F      ; Branch if so
C3/8989:	A509    	LDA $09        ; No-autofire keys
C3/898B:	8902    	BIT #$02       ; Pushing left?
C3/898D:	F019    	BEQ $89A8      ; Branch if not
C3/898F:	20B20E  	JSR $0EB2      ; Sound: Click
C3/8992:	A9FF    	LDA #$FF       ; Status: Off
C3/8994:	8599    	STA $99        ; Disable arrow
C3/8996:	A90A    	LDA #$0A       ; Frames: 10
C3/8998:	8520    	STA $20        ; Set scroll timer
C3/899A:	A0F4FF  	LDY #$FFF4     ; Speed: -12
C3/899D:	849C    	STY $9C        ; Set scroll speed
C3/899F:	A95E    	LDA #$5E       ; C3/89E6
C3/89A1:	8527    	STA $27        ; Queue: Moved menu
C3/89A3:	A965    	LDA #$65       ; C3/36E7
C3/89A5:	8526    	STA $26        ; Next: Pan screen
C3/89A7:	60      	RTS

Fork: Handle B
C3/89A8:	A509    	LDA $09        ; No-autofire keys
C3/89AA:	8980    	BIT #$80       ; Pushing B?
C3/89AC:	F02F    	BEQ $89DD      ; Exit if not
C3/89AE:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/89B1:	A9FF    	LDA #$FF       ; Status: Off
C3/89B3:	8599    	STA $99        ; Disable arrow
C3/89B5:	A2497B  	LDX #$7B49     ; 7E/7B49
C3/89B8:	8E8121  	STX $2181      ; Set WRAM LBs
C3/89BB:	A28002  	LDX #$0280     ; BG3 tiles: 640
C3/89BE:	9C8021  	STZ $2180      ; Clear tile LB
C3/89C1:	9C8021  	STZ $2180      ; Clear tile HB
C3/89C4:	CA      	DEX            ; One less tile
C3/89C5:	D0F7    	BNE $89BE      ; Loop till last
C3/89C7:	A904    	LDA #$04       ; Show cursor: Y
C3/89C9:	0445    	TSB $45        ; Set menu flag
C3/89CB:	20DE89  	JSR $89DE      ; Desc/Bar: On
C3/89CE:	20390F  	JSR $0F39      ; Queue BG3 upload
C3/89D1:	206813  	JSR $1368      ; Upload it now
C3/89D4:	7B      	TDC            ; BG1 H-Shift: 0
C3/89D5:	8F109A7E	STA $7E9A10    ; Unhide item list
C3/89D9:	A908    	LDA #$08       ; C3/1EF7
C3/89DB:	8526    	STA $26        ; Next: Choice 1
C3/89DD:	60      	RTS

Create scrollbar and set to update description
C3/89DE:	201F09  	JSR $091F      ; Create scrollbar
C3/89E1:	A910    	LDA #$10       ; Description: On
C3/89E3:	1445    	TRB $45        ; Set menu flag
C3/89E5:	60      	RTS

5E: Sustain shifted gear data menu
C3/89E6:	A509    	LDA $09        ; No-autofire keys
C3/89E8:	8980    	BIT #$80       ; Pushing B?
C3/89EA:	D006    	BNE $89F2      ; Branch if so
C3/89EC:	A509    	LDA $09        ; ...
C3/89EE:	8901    	BIT #$01       ; Pushing right?
C3/89F0:	F01B    	BEQ $8A0D      ; Exit if not
C3/89F2:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/89F5:	A90A    	LDA #$0A       ; Frames: 10
C3/89F7:	8520    	STA $20        ; Set scroll timer
C3/89F9:	A00C00  	LDY #$000C     ; Speed: 12
C3/89FC:	849C    	STY $9C        ; Set scroll speed
C3/89FE:	A905    	LDA #$05       ; Blinker: Off...
C3/8A00:	1446    	TRB $46        ; Set menu flag
C3/8A02:	A964    	LDA #$64       ; C3/8983
C3/8A04:	8527    	STA $27        ; Queue screen 1
C3/8A06:	A965    	LDA #$65       ; C3/36E7
C3/8A08:	8526    	STA $26        ; Next: Pan screen
C3/8A0A:	209585  	JSR $8595      ; Create arrow
C3/8A0D:	60      	RTS

Draw item usage menu
C3/8A0E:	20286A  	JSR $6A28      ; Clear BG2 map A
C3/8A11:	A03B8A  	LDY #$8A3B     ; C3/8A3B
C3/8A14:	204103  	JSR $0341      ; Draw party box
C3/8A17:	A03F8A  	LDY #$8A3F     ; C3/8A3F
C3/8A1A:	204103  	JSR $0341      ; Draw item box
C3/8A1D:	A0438A  	LDY #$8A43     ; C3/8A43
C3/8A20:	204103  	JSR $0341      ; Draw quantity box
C3/8A23:	20520E  	JSR $0E52      ; Upload windows
C3/8A26:	20196A  	JSR $6A19      ; Clear BG1 map B
C3/8A29:	A0C0FF  	LDY #$FFC0     ; X: -64 = 448
C3/8A2C:	8435    	STY $35        ; Set BG1 X-Pos
C3/8A2E:	A902    	LDA #$02       ; Portrait row bit
C3/8A30:	0445    	TSB $45        ; Ignore back row
C3/8A32:	208A31  	JSR $318A      ; Draw party info
C3/8A35:	20478A  	JSR $8A47      ; Draw item info
C3/8A38:	4C9F31  	JMP $319F      ; Upload text maps

Window layout for item usage menu
C3/8A3B:	9D581318	; 21x26 at $589D (Party)
C3/8A3F:	8B580D02	; 15x04 at $588B (Item)
C3/8A43:	8B590703	; 09x05 at $598B (Quantity)

Draw item info for item usage menu
C3/8A47:	A920    	LDA #$20       ; Palette 0
C3/8A49:	8529    	STA $29        ; Color: User's
C3/8A4B:	A0418E  	LDY #$8E41     ; Text pointer
C3/8A4E:	20F902  	JSR $02F9      ; Draw "Owned:"
C3/8A51:	C220    	REP #$20       ; 16-bit A
C3/8A53:	A90B79  	LDA #$790B     ; Tilemap ptr
C3/8A56:	8F899E7E	STA $7E9E89    ; Set position
C3/8A5A:	E220    	SEP #$20       ; 8-bit A
C3/8A5C:	7B      	TDC            ; Clear A
C3/8A5D:	A54B    	LDA $4B        ; Item's slot
C3/8A5F:	A8      	TAY            ; Index it
C3/8A60:	20B980  	JSR $80B9      ; Load "<item>:"
C3/8A63:	7B      	TDC            ; Terminator
C3/8A64:	8F989E7E	STA $7E9E98    ; Remove ":"
C3/8A68:	20D97F  	JSR $7FD9      ; Draw item
C3/8A6B:	8000    	BRA $8A6D      ; ...

Draw quantity owned for item usage menu
C3/8A6D:	A920    	LDA #$20       ; Palette 0
C3/8A6F:	8529    	STA $29        ; Color: User's
C3/8A71:	7B      	TDC            ; Clear A
C3/8A72:	A528    	LDA $28        ; Item's slot
C3/8A74:	A8      	TAY            ; Index it
C3/8A75:	B96919  	LDA $1969,Y    ; Item quantity
C3/8A78:	20E004  	JSR $04E0      ; Turn into text
C3/8A7B:	A2937A  	LDX #$7A93     ; Text position
C3/8A7E:	20B604  	JSR $04B6      ; Draw 2 digits
C3/8A81:	4CD97F  	JMP $7FD9      ; Redraw item...

6F: Initialize item usage menu
C3/8A84:	20762A  	JSR $2A76      ; Init variables
C3/8A87:	200E8A  	JSR $8A0E      ; Draw menu
C3/8A8A:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/8A8D:	A940    	LDA #$40       ; No cursor memory
C3/8A8F:	0445    	TSB $45        ; Set menu flag
C3/8A91:	A970    	LDA #$70       ; Queue: Sustain menu
C3/8A93:	4CA52A  	JMP $2AA5      ; Next: Fade-in

70: Sustain item usage menu
C3/8A96:	20FD0E  	JSR $0EFD      ; Queue stats upload
C3/8A99:	20610F  	JSR $0F61      ; And item info's
C3/8A9C:	A508    	LDA $08        ; No-autofire keys
C3/8A9E:	8980    	BIT #$80       ; Pushing A?
C3/8AA0:	F00A    	BEQ $8AAC      ; Branch if not
C3/8AA2:	202B8C  	JSR $8C2B      ; Item
C3/8AA5:	C9E7    	CMP #$E7       ; Rename Card?
C3/8AA7:	F017    	BEQ $8AC0      ; Branch if so
C3/8AA9:	20E78A  	JSR $8AE7      ; Handle item usage

Fork: Handle B
C3/8AAC:	A509    	LDA $09        ; No-autofire keys
C3/8AAE:	8980    	BIT #$80       ; Pushing B?
C3/8AB0:	F00D    	BEQ $8ABF      ; Exit if not
C3/8AB2:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/8AB5:	A942    	LDA #$42       ; Allow back row
C3/8AB7:	1445    	TRB $45        ; And cursor memory
C3/8AB9:	A977    	LDA #$77       ; C3/1B35
C3/8ABB:	8527    	STA $27        ; Queue Item menu
C3/8ABD:	6426    	STZ $26        ; Next: Fade-out
C3/8ABF:	60      	RTS

Fork: Rename Card
C3/8AC0:	200B2D  	JSR $2D0B      ; Define Y
C3/8AC3:	B90000  	LDA $0000,Y    ; Actor
C3/8AC6:	C90E    	CMP #$0E       ; Guest?
C3/8AC8:	B016    	BCS $8AE0      ; Fail if so
C3/8ACA:	8C0602  	STY $0206      ; Save actor adr
C3/8ACD:	20B20E  	JSR $0EB2      ; Sound: Click
C3/8AD0:	A9FE    	LDA #$FE       ; Actor renaming
C3/8AD2:	8D0502  	STA $0205      ; Set next menu
C3/8AD5:	A9FF    	LDA #$FF       ; Null value
C3/8AD7:	8527    	STA $27        ; Queue menu exit
C3/8AD9:	6426    	STZ $26        ; Next: Fade-out
C3/8ADB:	A9E7    	LDA #$E7       ; Item number
C3/8ADD:	4C979D  	JMP $9D97      ; Destroy item

Fork: Prevent guest renaming
C3/8AE0:	20C00E  	JSR $0EC0      ; Play buzzer
C3/8AE3:	205D30  	JSR $305D      ; Pixelate screen
C3/8AE6:	60      	RTS

Handle item usage, excluding Rename Card
C3/8AE7:	202B8C  	JSR $8C2B      ; ...
C3/8AEA:	200B2D  	JSR $2D0B      ; Target's address
C3/8AED:	203D8B  	JSR $8B3D      ; Valid target?
C3/8AF0:	9018    	BCC $8B0A      ; Fail if not
C3/8AF2:	20E50E  	JSR $0EE5      ; Play heal sound
C3/8AF5:	20118B  	JSR $8B11      ; Heal & destroy
C3/8AF8:	206D8A  	JSR $8A6D      ; Redraw quantity
C3/8AFB:	20012C  	JSR $2C01      ; Redraw party
C3/8AFE:	7B      	TDC            ; Clear A
C3/8AFF:	A528    	LDA $28        ; Item's slot
C3/8B01:	A8      	TAY            ; Index it
C3/8B02:	B96919  	LDA $1969,Y    ; Item quantity
C3/8B05:	D009    	BNE $8B10      ; Exit if not 0
C3/8B07:	4CB58A  	JMP $8AB5      ; Close submenu
C3/8B0A:	20C00E  	JSR $0EC0      ; Play buzzer
C3/8B0D:	205D30  	JSR $305D      ; Pixelate screen
C3/8B10:	60      	RTS

Heal item's target, destroy item
C3/8B11:	201A8B  	JSR $8B1A      ; Heal target
C3/8B14:	202B8C  	JSR $8C2B      ; Selected item
C3/8B17:	4C979D  	JMP $9D97      ; Destroy item

Adjust item target's HP, MP, and status
C3/8B1A:	B91400  	LDA $0014,Y    ; Status LB
C3/8B1D:	85F8    	STA $F8        ; Set target's
C3/8B1F:	B91500  	LDA $0015,Y    ; Status HB
C3/8B22:	85FB    	STA $FB        ; Set target's
C3/8B24:	5A      	PHY            ; Save index
C3/8B25:	202B8C  	JSR $8C2B      ; Item number
C3/8B28:	A20200  	LDX #$0002     ; Mode: Item
C3/8B2B:	220900C2	JSL $C20009    ; Get new status
C3/8B2F:	7A      	PLY            ; Actor's address
C3/8B30:	A5FC    	LDA $FC        ; Status LB
C3/8B32:	991400  	STA $0014,Y    ; Set actor's
C3/8B35:	A5FF    	LDA $FF        ; Status HB
C3/8B37:	991500  	STA $0015,Y    ; Set actor's
C3/8B3A:	4C338C  	JMP $8C33      ; Heal HP & MP

Determine whether item target is valid
C3/8B3D:	B91400  	LDA $0014,Y    ; Status
C3/8B40:	2980    	AND #$80       ; Wound?
C3/8B42:	D041    	BNE $8B85      ; Branch if so
C3/8B44:	202B8C  	JSR $8C2B      ; Item
C3/8B47:	C9FE    	CMP #$FE       ; Dried Meat?
C3/8B49:	F079    	BEQ $8BC4      ; Branch if so
C3/8B4B:	C9E8    	CMP #$E8       ; Tonic?
C3/8B4D:	F075    	BEQ $8BC4      ; Branch if so
C3/8B4F:	C9E9    	CMP #$E9       ; Potion?
C3/8B51:	F071    	BEQ $8BC4      ; Branch if so
C3/8B53:	C9EA    	CMP #$EA       ; X-Potion?
C3/8B55:	F06D    	BEQ $8BC4      ; Branch if so
C3/8B57:	C9EB    	CMP #$EB       ; Tincture?
C3/8B59:	F07A    	BEQ $8BD5      ; Branch if so
C3/8B5B:	C9EC    	CMP #$EC       ; Ether?
C3/8B5D:	F076    	BEQ $8BD5      ; Branch if so
C3/8B5F:	C9ED    	CMP #$ED       ; X-Ether?
C3/8B61:	F072    	BEQ $8BD5      ; Branch if so
C3/8B63:	C9F1    	CMP #$F1       ; Revivify?
C3/8B65:	F027    	BEQ $8B8E      ; Branch if so
C3/8B67:	C9F2    	CMP #$F2       ; Antidote?
C3/8B69:	F050    	BEQ $8BBB      ; Branch if so
C3/8B6B:	C9F3    	CMP #$F3       ; Eyedrop?
C3/8B6D:	F028    	BEQ $8B97      ; Branch if so
C3/8B6F:	C9F4    	CMP #$F4       ; Soft?
C3/8B71:	F02D    	BEQ $8BA0      ; Branch if so
C3/8B73:	C9F5    	CMP #$F5       ; Remedy?
C3/8B75:	F03B    	BEQ $8BB2      ; Branch if so
C3/8B77:	C9EE    	CMP #$EE       ; Elixir?
C3/8B79:	F06A    	BEQ $8BE5      ; Branch if so
C3/8B7B:	C9F8    	CMP #$F8       ; Green Cherry?
C3/8B7D:	F02A    	BEQ $8BA9      ; Branch if so
C3/8B7F:	C9F6    	CMP #$F6       ; Sleeping Bag?
C3/8B81:	F04F    	BEQ $8BD2      ; Branch if so
C3/8B83:	804B    	BRA $8BD0      ; Make item fail

Fork: Fenix Down
C3/8B85:	202B8C  	JSR $8C2B      ; Item
C3/8B88:	C9F0    	CMP #$F0       ; Fenix Down?
C3/8B8A:	F057    	BEQ $8BE3      ; Succeed if so
C3/8B8C:	8042    	BRA $8BD0      ; Make item fail

Fork: Revivify
C3/8B8E:	B91400  	LDA $0014,Y    ; Status
C3/8B91:	2902    	AND #$02       ; Zombie?
C3/8B93:	F03B    	BEQ $8BD0      ; Fail if not
C3/8B95:	804C    	BRA $8BE3      ; Make item work

Fork: Eyedrop
C3/8B97:	B91400  	LDA $0014,Y    ; Status
C3/8B9A:	2901    	AND #$01       ; Dark?
C3/8B9C:	F032    	BEQ $8BD0      ; Fail if not
C3/8B9E:	8043    	BRA $8BE3      ; Make item work

Fork: Soft
C3/8BA0:	B91400  	LDA $0014,Y    ; Status
C3/8BA3:	2940    	AND #$40       ; Petrify?
C3/8BA5:	F029    	BEQ $8BD0      ; Fail if not
C3/8BA7:	803A    	BRA $8BE3      ; Make item work

Fork: Green Cherry
C3/8BA9:	B91400  	LDA $0014,Y    ; Status
C3/8BAC:	2920    	AND #$20       ; Imp?
C3/8BAE:	F020    	BEQ $8BD0      ; Fail if not
C3/8BB0:	8031    	BRA $8BE3      ; Make item work

Fork: Remedy
C3/8BB2:	B91400  	LDA $0014,Y    ; Dark? Poison?
C3/8BB5:	2965    	AND #$65       ; Imp? Petrify?
C3/8BB7:	F017    	BEQ $8BD0      ; Fail if none
C3/8BB9:	8028    	BRA $8BE3      ; Make item work

Fork: Antidote
C3/8BBB:	B91400  	LDA $0014,Y    ; Status
C3/8BBE:	2904    	AND #$04       ; Poison?
C3/8BC0:	F00E    	BEQ $8BD0      ; Fail if not
C3/8BC2:	801F    	BRA $8BE3      ; Make item work

Fork: Dried Meat, Tonic, Potion, X-Potion
C3/8BC4:	B91400  	LDA $0014,Y    ; Zombie? KO?
C3/8BC7:	29C2    	AND #$C2       ; Or Petrify?
C3/8BC9:	D005    	BNE $8BD0      ; Fail if any
C3/8BCB:	209A2B  	JSR $2B9A      ; At full HP?
C3/8BCE:	9013    	BCC $8BE3      ; Succeed if not

Fork: Make item fail
C3/8BD0:	18      	CLC            ; Mark failure
C3/8BD1:	60      	RTS

Fork: Sleeping Bag (A)
C3/8BD2:	4C118C  	JMP $8C11      ; BRA...

Fork: Tincture, Ether, X-Ether
C3/8BD5:	B91400  	LDA $0014,Y    ; Zombie? KO?
C3/8BD8:	29C2    	AND #$C2       ; Or Petrify?
C3/8BDA:	D0F4    	BNE $8BD0      ; Fail if any
C3/8BDC:	20BC2B  	JSR $2BBC      ; At full MP?
C3/8BDF:	9002    	BCC $8BE3      ; Succeed if not
C3/8BE1:	80ED    	BRA $8BD0      ; Make item fail

Fork: Make item work
C3/8BE3:	38      	SEC            ; Mark success
C3/8BE4:	60      	RTS

Fork: Elixir
C3/8BE5:	B91400  	LDA $0014,Y    ; Zombie? KO?
C3/8BE8:	29C2    	AND #$C2       ; Or Petrify?
C3/8BEA:	D0E4    	BNE $8BD0      ; Fail if any
C3/8BEC:	209A2B  	JSR $2B9A      ; At full HP?
C3/8BEF:	90F2    	BCC $8BE3      ; Succeed if not
C3/8BF1:	20BC2B  	JSR $2BBC      ; At full MP?
C3/8BF4:	90ED    	BCC $8BE3      ; Succeed if not
C3/8BF6:	80D8    	BRA $8BD0      ; Make item fail

Fork: Megalixir (unused)
C3/8BF8:	7B      	TDC            ; Clear A
C3/8BF9:	AA      	TAX            ; Member index: 0
C3/8BFA:	86ED    	STX $ED        ; Memorize index
C3/8BFC:	BC6D00  	LDY $006D,X    ; Actor's address
C3/8BFF:	F005    	BEQ $8C06      ; Skip if nobody
C3/8C01:	20E58B  	JSR $8BE5      ; Run Elixir test
C3/8C04:	B0DD    	BCS $8BE3      ; Heal if passed
C3/8C06:	A6ED    	LDX $ED        ; Member index
C3/8C08:	E8      	INX            ; Member index +1
C3/8C09:	E8      	INX            ; Member index +1
C3/8C0A:	E00800  	CPX #$0008     ; Done 4 members?
C3/8C0D:	D0EB    	BNE $8BFA      ; Loop if not
C3/8C0F:	80BF    	BRA $8BD0      ; Make item fail

Fork: Sleeping Bag (B)
C3/8C11:	B91400  	LDA $0014,Y    ; Dark/Zom/Pois?
C3/8C14:	29F7    	AND #$F7       ; Clear/Imp/Pet/KO?
C3/8C16:	D0CB    	BNE $8BE3      ; Succeed if any
C3/8C18:	B91500  	LDA $0015,Y    ; Status HB
C3/8C1B:	2980    	AND #$80       ; Float?
C3/8C1D:	D0C4    	BNE $8BE3      ; Succeed if so
C3/8C1F:	209A2B  	JSR $2B9A      ; At full HP?
C3/8C22:	90BF    	BCC $8BE3      ; Succeed if not
C3/8C24:	20BC2B  	JSR $2BBC      ; At full MP?
C3/8C27:	90BA    	BCC $8BE3      ; Succeed if not
C3/8C29:	80A5    	BRA $8BD0      ; Make item fail

Get selected recovery item
C3/8C2B:	7B      	TDC            ; Clear A
C3/8C2C:	A528    	LDA $28        ; Inventory slot
C3/8C2E:	AA      	TAX            ; Index it
C3/8C2F:	BD6918  	LDA $1869,X    ; Item in slot
C3/8C32:	60      	RTS

Handle HP and MP recovery from item
C3/8C33:	5A      	PHY            ; ...
C3/8C34:	202B8C  	JSR $8C2B      ; Item
C3/8C37:	202183  	JSR $8321      ; Compute index
C3/8C3A:	7A      	PLY            ; ...
C3/8C3B:	AE3421  	LDX $2134      ; Load it
C3/8C3E:	86B0    	STX $B0        ; Memorize it
C3/8C40:	20CD8C  	JSR $8CCD      ; Load item power
C3/8C43:	BF1350D8	LDA $D85013,X  ; Fixed healing?
C3/8C47:	302D    	BMI $8C76      ; Branch if not
C3/8C49:	2908    	AND #$08       ; Affects HP?
C3/8C4B:	F00F    	BEQ $8C5C      ; Branch if not

Fork: Fixed HP healing
C3/8C4D:	C221    	REP #$21       ; 16-bit A; C-
C3/8C4F:	A5B2    	LDA $B2        ; Item's power
C3/8C51:	790900  	ADC $0009,Y    ; Add target's HP
C3/8C54:	990900  	STA $0009,Y    ; Set target's HP
C3/8C57:	E220    	SEP #$20       ; 8-bit A
C3/8C59:	209A2B  	JSR $2B9A      ; Enforce max HP

Fork: Fixed MP healing
C3/8C5C:	A6B0    	LDX $B0        ; Item index
C3/8C5E:	BF1350D8	LDA $D85013,X  ; Properties
C3/8C62:	2910    	AND #$10       ; Affects MP?
C3/8C64:	F00F    	BEQ $8C75      ; Exit if not
C3/8C66:	C221    	REP #$21       ; 16-bit A; C-
C3/8C68:	A5B2    	LDA $B2        ; Item's power
C3/8C6A:	790D00  	ADC $000D,Y    ; Add target's MP
C3/8C6D:	990D00  	STA $000D,Y    ; Set target's MP
C3/8C70:	E220    	SEP #$20       ; 8-bit A
C3/8C72:	20BC2B  	JSR $2BBC      ; Enforce max MP
C3/8C75:	60      	RTS

Fork: Fractional HP healing
C3/8C76:	BF1350D8	LDA $D85013,X  ; Properties
C3/8C7A:	2908    	AND #$08       ; Affects HP?
C3/8C7C:	F022    	BEQ $8CA0      ; Branch if not
C3/8C7E:	B90B00  	LDA $000B,Y    ; Max HP LB
C3/8C81:	85F3    	STA $F3        ; Memorize it
C3/8C83:	B90C00  	LDA $000C,Y    ; Max HP HB
C3/8C86:	85F4    	STA $F4        ; Memorize it
C3/8C88:	20650D  	JSR $0D65      ; Add gear bonus
C3/8C8B:	20920D  	JSR $0D92      ; Cap at 9999
C3/8C8E:	20D68C  	JSR $8CD6      ; Max HP x Pwr/16
C3/8C91:	C221    	REP #$21       ; 16-bit A; C-
C3/8C93:	A5E9    	LDA $E9        ; Product
C3/8C95:	790900  	ADC $0009,Y    ; Add target's HP
C3/8C98:	990900  	STA $0009,Y    ; Set target's HP
C3/8C9B:	E220    	SEP #$20       ; 8-bit A
C3/8C9D:	209A2B  	JSR $2B9A      ; Enforce max HP

Fork: Fractional MP healing
C3/8CA0:	A6B0    	LDX $B0        ; Item index
C3/8CA2:	BF1350D8	LDA $D85013,X  ; Properties
C3/8CA6:	2910    	AND #$10       ; Affects MP?
C3/8CA8:	F022    	BEQ $8CCC      ; Exit if not
C3/8CAA:	B90F00  	LDA $000F,Y    ; Max MP LB
C3/8CAD:	85F3    	STA $F3        ; Memorize it
C3/8CAF:	B91000  	LDA $0010,Y    ; Max MP HB
C3/8CB2:	85F4    	STA $F4        ; Memorize it
C3/8CB4:	20650D  	JSR $0D65      ; Add gear bonus
C3/8CB7:	209F0D  	JSR $0D9F      ; Cap at 999
C3/8CBA:	20D68C  	JSR $8CD6      ; Max MP x Pwr/16
C3/8CBD:	C221    	REP #$21       ; 16-bit A; C-
C3/8CBF:	A5E9    	LDA $E9        ; Product
C3/8CC1:	790D00  	ADC $000D,Y    ; Add target's MP
C3/8CC4:	990D00  	STA $000D,Y    ; Set target's MP
C3/8CC7:	E220    	SEP #$20       ; 8-bit A
C3/8CC9:	20BC2B  	JSR $2BBC      ; Enforce max MP
C3/8CCC:	60      	RTS

Load recovery item's power
C3/8CCD:	BF1450D8	LDA $D85014,X  ; Item's power
C3/8CD1:	85B2    	STA $B2        ; Memorize it
C3/8CD3:	64B3    	STZ $B3        ; Clear HB
C3/8CD5:	60      	RTS

Multiply max HP or MP by item's power, divide by 16
C3/8CD6:	AD1242  	LDA $4212      ; PPU status
C3/8CD9:	2940    	AND #$40       ; H-Blank?
C3/8CDB:	F0F9    	BEQ $8CD6      ; Loop if not
C3/8CDD:	A5F3    	LDA $F3        ; Max HP/MP LB
C3/8CDF:	8D1B21  	STA $211B      ; Set matrix A LB
C3/8CE2:	A5F4    	LDA $F4        ; Max HP/MP HB
C3/8CE4:	8D1B21  	STA $211B      ; Set matrix A HB
C3/8CE7:	A5B2    	LDA $B2        ; Item's power
C3/8CE9:	8D1C21  	STA $211C      ; Set matrix B
C3/8CEC:	8D1C21  	STA $211C      ; ...
C3/8CEF:	AD3621  	LDA $2136      ; Product HB
C3/8CF2:	85EB    	STA $EB        ; Set gain B3
C3/8CF4:	64EC    	STZ $EC        ; Clear byte 4
C3/8CF6:	C220    	REP #$20       ; 16-bit A
C3/8CF8:	AD3421  	LDA $2134      ; Product LBs
C3/8CFB:	85E9    	STA $E9        ; Set gain LBs
C3/8CFD:	46EB    	LSR $EB        ; Halve HBs
C3/8CFF:	66E9    	ROR $E9        ; Halve LBs w/ C
C3/8D01:	46EB    	LSR $EB        ; Halve HBs
C3/8D03:	66E9    	ROR $E9        ; Halve LBs w/ C
C3/8D05:	46EB    	LSR $EB        ; Halve HBs
C3/8D07:	66E9    	ROR $E9        ; Halve LBs w/ C
C3/8D09:	46EB    	LSR $EB        ; Halve HBs
C3/8D0B:	66E9    	ROR $E9        ; Halve LBs w/ C
C3/8D0D:	E220    	SEP #$20       ; 8-bit A
C3/8D0F:	60      	RTS

Text pointers for Item menu
C3/8D10:	1D8D    	; USE
C3/8D12:	238D    	; ARRANGE
C3/8D14:	2D8D    	; RARE

Positioned text for Item menu
C3/8D16:	0D79 88AD9EA600                ; Item
C3/8D1D:	1D79 94928400                  ; USE
C3/8D23:	2779 809191808D868400          ; ARRANGE
C3/8D2D:	3979 9180918400                ; RARE

Text for gear data menu, " can be used by:"
C3/8D34:	FF9C9AA7FF9B9EFFAEAC9E9DFF9BB2C100

Text pointers for gear data menu
C3/8D45:	778D    	; Vigor
C3/8D47:	7F8D    	; Stamina
C3/8D49:	898D    	; Mag.Pwr
C3/8D4B:	938D    	; Evade %
C3/8D4D:	9D8D    	; MBlock%
C3/8D4F:	A78D    	; ..
C3/8D51:	AB8D    	; ..
C3/8D53:	AF8D    	; ..
C3/8D55:	B38D    	; ..
C3/8D57:	B78D    	; ..
C3/8D59:	BB8D    	; ..
C3/8D5B:	BF8D    	; ..
C3/8D5D:	C38D    	; ..
C3/8D5F:	C78D    	; ..
C3/8D61:	CB8D    	; Speed
C3/8D63:	D38D    	; Bat.Pwr
C3/8D65:	DD8D    	; Defense
C3/8D67:	E78D    	; Mag.Def
C3/8D69:	F18D    	; 50% Dmg
C3/8D6B:	FB8D    	; Absorb HP
C3/8D6D:	078E    	; No Effect
C3/8D6F:	138E    	; Weak pt

Positioned text for gear data menu
C3/8D71:	4386 BFBFBF00                  ; ???
C3/8D77:	2F84 95A2A0A8AB00              ; Vigor
C3/8D7F:	2F85 92AD9AA6A2A79A00          ; Stamina
C3/8D89:	AF85 8C9AA0C58FB0AB00          ; Mag.Pwr
C3/8D93:	2F87 84AF9A9D9EFFCD00          ; Evade %
C3/8D9D:	2F88 8C81A5A89CA4CD00          ; MBlock%
C3/8DA7:	3F84 D300                      ; ..
C3/8DAB:	BF84 D300                      ; ..
C3/8DAF:	3F85 D300                      ; ..
C3/8DB3:	BF85 D300                      ; ..
C3/8DB7:	3F86 D300                      ; ..
C3/8DBB:	BF86 D300                      ; ..
C3/8DBF:	3F87 D300                      ; ..
C3/8DC3:	BF87 D300                      ; ..
C3/8DC7:	3F88 D300                      ; ..
C3/8DCB:	AF84 92A99E9E9D00              ; Speed
C3/8DD3:	2F86 819AADC58FB0AB00          ; Bat.Pwr
C3/8DDD:	AF86 839E9F9EA7AC9E00          ; Defense
C3/8DE7:	AF87 8C9AA0C5839E9F00          ; Mag.Def
C3/8DF1:	8D7B B9B4CDFF83A6A000          ; 50% Dmg
C3/8DFB:	A97B 809BACA8AB9BFF878F00      ; Absorb HP
C3/8E07:	8D7C 8DA8FF849F9F9E9CAD00      ; No Effect
C3/8E13:	A97C 969E9AA4FFA9AD00          ; Weak pt
C3/8E1D:	8D7B 80ADAD9A9CA400            ; Attack
C3/8E26:	2F82 92B09D939E9CA100          ; SwdTech
C3/8E30:	AF82 91AEA7A29C00              ; Runic
C3/8E38:	2F83 B6C4A19AA79D00            ; 2-hand

Positioned text for item usage menu, "Owned:"
C3/8E41:	0D7A 8EB0A79E9DC100

Positioned spaces for blanking item count in Item menu
C3/8E4A:	BF7A FFFFFF00

Load navigation data for Equip menu options
C3/8E50:	A05F8E  	LDY #$8E5F     ; C3/8E5F
C3/8E53:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for Equip menu options
C3/8E56:	202D07  	JSR $072D      ; Handle D-Pad
C3/8E59:	A0648E  	LDY #$8E64     ; C3/8E64
C3/8E5C:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for Equip menu options
C3/8E5F:	01      	; Wraps horizontally
C3/8E60:	00      	; Initial column
C3/8E61:	00      	; Initial row
C3/8E62:	04      	; 4 columns
C3/8E63:	01      	; 1 row

Cursor positions for Equip menu options
C3/8E64:	0010    	; EQUIP
C3/8E66:	3810    	; OPTIMUM
C3/8E68:	8010    	; RMOVE
C3/8E6A:	B810    	; EMPTY

Load navigation data for Equip menu slot selection
C3/8E6C:	A07B8E  	LDY #$8E7B     ; C3/8E7B
C3/8E6F:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for Equip menu slot selection
C3/8E72:	202D07  	JSR $072D      ; Handle D-Pad
C3/8E75:	A0808E  	LDY #$8E80     ; C3/8E80
C3/8E78:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for Equip menu slot selection
C3/8E7B:	80      	; Wraps vertically
C3/8E7C:	00      	; Initial column
C3/8E7D:	00      	; Initial row
C3/8E7E:	01      	; 1 column
C3/8E7F:	04      	; 4 rows

Cursor positions for Equip menu slot selection
C3/8E80:	002C    	; R-Hand
C3/8E82:	0038    	; L-Hand
C3/8E84:	0044    	; Head
C3/8E86:	0050    	; Body

Load navigation data for equipment browsing
C3/8E88:	A0A68E  	LDY #$8EA6     ; C3/8EA6
C3/8E8B:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for equipment browsing (over 9 items)
C3/8E8E:	20C781  	JSR $81C7      ; Handle D-Pad
C3/8E91:	A0AB8E  	LDY #$8EAB     ; C3/8EAB
C3/8E94:	4C4806  	JMP $0648      ; Relocate cursor

Load navigation data for equipment browsing
C3/8E97:	A0A68E  	LDY #$8EA6     ; C3/8EA6
C3/8E9A:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for equipment browsing (9 items or less)
C3/8E9D:	202D07  	JSR $072D      ; Handle D-Pad
C3/8EA0:	A0AB8E  	LDY #$8EAB     ; C3/8EAB
C3/8EA3:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for equipment list
C3/8EA6:	81      	; Never wraps
C3/8EA7:	00      	; Initial column
C3/8EA8:	00      	; Initial row
C3/8EA9:	01      	; 1 column
C3/8EAA:	09      	; 9 rows

Cursor positions for equipment list
C3/8EAB:	0068    	; Item 1
C3/8EAD:	0074    	; Item 2
C3/8EAF:	0080    	; Item 3
C3/8EB1:	008C    	; Item 4
C3/8EB3:	0098    	; Item 5
C3/8EB5:	00A4    	; Item 6
C3/8EB7:	00B0    	; Item 7
C3/8EB9:	00BC    	; Item 8
C3/8EBB:	00C8    	; Item 9

Load navigation data for Relic menu options
C3/8EBD:	A0CC8E  	LDY #$8ECC     ; C3/8ECC
C3/8EC0:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for Relic menu options
C3/8EC3:	202D07  	JSR $072D      ; Handle D-Pad
C3/8EC6:	A0D18E  	LDY #$8ED1     ; C3/8ED1
C3/8EC9:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for Relic menu options
C3/8ECC:	01      	; Wraps horizontally
C3/8ECD:	00      	; Initial column
C3/8ECE:	00      	; Initial row
C3/8ECF:	02      	; 2 columns
C3/8ED0:	01      	; 1 row

Cursor positions for Relic menu options
C3/8ED1:	1010    	; Equip
C3/8ED3:	4810    	; Remove

Load navigation data for relic slot selection
C3/8ED5:	A0E48E  	LDY #$8EE4     ; C3/8EE4
C3/8ED8:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for relic slot selection
C3/8EDB:	202D07  	JSR $072D      ; Handle D-Pad
C3/8EDE:	A0E98E  	LDY #$8EE9     ; C3/8EE9
C3/8EE1:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for relic slot selection
C3/8EE4:	80      	; Wraps vertically
C3/8EE5:	00      	; Initial column
C3/8EE6:	00      	; Initial row
C3/8EE7:	01      	; 1 column
C3/8EE8:	02      	; 2 rows

Cursor positions for relic slots
C3/8EE9:	0044    	; Relic 1
C3/8EEB:	0050    	; Relic 2

Draw party gear overview
C3/8EED:	A902    	LDA #$02       ; 32x64 at $0000
C3/8EEF:	8D0721  	STA $2107      ; Set BG1 map loc
C3/8EF2:	20286A  	JSR $6A28      ; Clear BG2 map A
C3/8EF5:	A02E90  	LDY #$902E     ; C3/902E
C3/8EF8:	204103  	JSR $0341      ; Draw window
C3/8EFB:	20520E  	JSR $0E52      ; Upload window
C3/8EFE:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/8F01:	20196A  	JSR $6A19      ; Clear BG1 map B
C3/8F04:	201C8F  	JSR $8F1C      ; Handle member 1
C3/8F07:	20368F  	JSR $8F36      ; Handle member 2
C3/8F0A:	20528F  	JSR $8F52      ; Handle member 3
C3/8F0D:	206E8F  	JSR $8F6E      ; Handle member 4
C3/8F10:	20280E  	JSR $0E28      ; Upload BG1 A+B
C3/8F13:	20360E  	JSR $0E36      ; Upload BG1 C...
C3/8F16:	203C6A  	JSR $6A3C      ; Clear BG3 map A
C3/8F19:	4C6E0E  	JMP $0E6E      ; Upload BG3 A+B

Draw text in party gear overview for member 1
C3/8F1C:	A569    	LDA $69        ; Nobody here?
C3/8F1E:	3015    	BMI $8F35      ; Exit if so
C3/8F20:	A66D    	LDX $6D        ; Actor's address
C3/8F22:	8667    	STX $67        ; Memorize it
C3/8F24:	A920    	LDA #$20       ; Palette 0
C3/8F26:	8529    	STA $29        ; Color: User's
C3/8F28:	A00D39  	LDY #$390D     ; Text position
C3/8F2B:	20CF34  	JSR $34CF      ; Draw actor name
C3/8F2E:	6428    	STZ $28        ; Member slot: 1
C3/8F30:	A904    	LDA #$04       ; Base Y: 4
C3/8F32:	208A8F  	JSR $8F8A      ; Draw equipment
C3/8F35:	60      	RTS

Draw text in party gear overview for member 2
C3/8F36:	A56A    	LDA $6A        ; Nobody here?
C3/8F38:	3017    	BMI $8F51      ; Exit if so
C3/8F3A:	A66F    	LDX $6F        ; Actor's address
C3/8F3C:	8667    	STX $67        ; Memorize it
C3/8F3E:	A920    	LDA #$20       ; Palette 0
C3/8F40:	8529    	STA $29        ; Color: User's
C3/8F42:	A00D3B  	LDY #$3B0D     ; Text position
C3/8F45:	20CF34  	JSR $34CF      ; Draw actor name
C3/8F48:	A901    	LDA #$01       ; Member: 2
C3/8F4A:	8528    	STA $28        ; Set member slot
C3/8F4C:	A90C    	LDA #$0C       ; Base Y: 12
C3/8F4E:	208A8F  	JSR $8F8A      ; Draw equipment
C3/8F51:	60      	RTS

Draw text in party gear overview for member 3
C3/8F52:	A56B    	LDA $6B        ; Nobody here?
C3/8F54:	3017    	BMI $8F6D      ; Exit if so
C3/8F56:	A671    	LDX $71        ; Actor's address
C3/8F58:	8667    	STX $67        ; Memorize it
C3/8F5A:	A920    	LDA #$20       ; Palette 0
C3/8F5C:	8529    	STA $29        ; Color: User's
C3/8F5E:	A00D3D  	LDY #$3D0D     ; Text position
C3/8F61:	20CF34  	JSR $34CF      ; Draw actor name
C3/8F64:	A902    	LDA #$02       ; Member: 3
C3/8F66:	8528    	STA $28        ; Set member slot
C3/8F68:	A914    	LDA #$14       ; Base Y: 20
C3/8F6A:	208A8F  	JSR $8F8A      ; Draw equipment
C3/8F6D:	60      	RTS

Draw text in party gear overview for member 4
C3/8F6E:	A56C    	LDA $6C        ; Nobody here?
C3/8F70:	3017    	BMI $8F89      ; Exit if so
C3/8F72:	A673    	LDX $73        ; Actor's address
C3/8F74:	8667    	STX $67        ; Memorize it
C3/8F76:	A920    	LDA #$20       ; Palette 0
C3/8F78:	8529    	STA $29        ; Color: User's
C3/8F7A:	A00D3F  	LDY #$3F0D     ; Text position
C3/8F7D:	20CF34  	JSR $34CF      ; Draw actor name
C3/8F80:	A903    	LDA #$03       ; Member: 4
C3/8F82:	8528    	STA $28        ; Set member slot
C3/8F84:	A91C    	LDA #$1C       ; Base Y: 28
C3/8F86:	208A8F  	JSR $8F8A      ; Draw equipment
C3/8F89:	60      	RTS

Draw member's gear in party gear overview
C3/8F8A:	85E2    	STA $E2        ; Set base Y
C3/8F8C:	64E0    	STZ $E0        ; ...
C3/8F8E:	A467    	LDY $67        ; Actor's address
C3/8F90:	7B      	TDC            ; Clear A
C3/8F91:	AA      	TAX            ; 1st: R-Hand
C3/8F92:	DA      	PHX            ; Push gear slot
C3/8F93:	5A      	PHY            ; Push actor adr
C3/8F94:	5A      	PHY            ; Push actor adr
C3/8F95:	DA      	PHX            ; Push gear slot
C3/8F96:	64E5    	STZ $E5        ; X-Pos HB: 0
C3/8F98:	BFD58FC3	LDA $C38FD5,X  ; X position
C3/8F9C:	85E4    	STA $E4        ; Memorize it
C3/8F9E:	BFDB8FC3	LDA $C38FDB,X  ; Relative Y
C3/8FA2:	18      	CLC            ; Prepare ADC
C3/8FA3:	65E2    	ADC $E2        ; Add base Y
C3/8FA5:	A6E4    	LDX $E4        ; X position
C3/8FA7:	209F80  	JSR $809F      ; Compute map ptr
C3/8FAA:	C220    	REP #$20       ; 16-bit A
C3/8FAC:	8A      	TXA            ; ...
C3/8FAD:	8F899E7E	STA $7E9E89    ; Set position
C3/8FB1:	E220    	SEP #$20       ; 8-bit A
C3/8FB3:	FA      	PLX            ; Gear slot
C3/8FB4:	E00200  	CPX #$0002     ; Either hand?
C3/8FB7:	B005    	BCS $8FBE      ; Branch if not
C3/8FB9:	201D94  	JSR $941D      ; Test "Empty"
C3/8FBC:	8002    	BRA $8FC0      ; Skip a line
C3/8FBE:	64E0    	STZ $E0        ; Forbid "Empty"
C3/8FC0:	7A      	PLY            ; Actor's address
C3/8FC1:	7B      	TDC            ; ...
C3/8FC2:	B91F00  	LDA $001F,Y    ; Item in slot
C3/8FC5:	20E18F  	JSR $8FE1      ; Load name
C3/8FC8:	20D97F  	JSR $7FD9      ; Draw name
C3/8FCB:	7A      	PLY            ; Actor's address
C3/8FCC:	C8      	INY            ; Reach next slot
C3/8FCD:	FA      	PLX            ; Gear slot
C3/8FCE:	E8      	INX            ; Point to next
C3/8FCF:	E00600  	CPX #$0006     ; Done 6 slots?
C3/8FD2:	D0BE    	BNE $8F92      ; Loop if not
C3/8FD4:	60      	RTS

X positions for party gear overview
C3/8FD5:	02      	; R-Hand
C3/8FD6:	11      	; L-Hand
C3/8FD7:	02      	; Head
C3/8FD8:	11      	; Body
C3/8FD9:	02      	; Relic 1
C3/8FDA:	11      	; Relic 2

Relative Y positions for party gear overview
C3/8FDB:	01      	; R-Hand
C3/8FDC:	01      	; L-Hand
C3/8FDD:	03      	; Head
C3/8FDE:	03      	; Body
C3/8FDF:	05      	; Relic 1
C3/8FE0:	05      	; Relic 2

Load equipped item's name
C3/8FE1:	48      	PHA            ; Save item
C3/8FE2:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/8FE5:	8E8121  	STX $2181      ; Set WRAM LBs
C3/8FE8:	AD1242  	LDA $4212      ; PPU status
C3/8FEB:	2940    	AND #$40       ; H-Blank?
C3/8FED:	F0F9    	BEQ $8FE8      ; Loop if not
C3/8FEF:	7B      	TDC            ; Clear A
C3/8FF0:	A5E0    	LDA $E0        ; Allow "Empty"?
C3/8FF2:	F003    	BEQ $8FF7      ; Branch if not
C3/8FF4:	68      	PLA            ; Item
C3/8FF5:	8005    	BRA $8FFC      ; Skip next check
C3/8FF7:	68      	PLA            ; Item
C3/8FF8:	C9FF    	CMP #$FF       ; None?
C3/8FFA:	F023    	BEQ $901F      ; Blank if so
C3/8FFC:	8D1B21  	STA $211B      ; Set matrix A LB
C3/8FFF:	9C1B21  	STZ $211B      ; Clear HB
C3/9002:	A90D    	LDA #$0D       ; Name data size
C3/9004:	8D1C21  	STA $211C      ; Set matrix B
C3/9007:	8D1C21  	STA $211C      ; ...
C3/900A:	AE3421  	LDX $2134      ; Index product
C3/900D:	A00D00  	LDY #$000D     ; Letters: 13
C3/9010:	BF00B3D2	LDA $D2B300,X  ; Letter
C3/9014:	8D8021  	STA $2180      ; Add to string
C3/9017:	E8      	INX            ; Point to next
C3/9018:	88      	DEY            ; One less left
C3/9019:	D0F5    	BNE $9010      ; Loop till last
C3/901B:	9C8021  	STZ $2180      ; End string
C3/901E:	60      	RTS

Fork: Blank item name
C3/901F:	A00D00  	LDY #$000D     ; Spaces: 13
C3/9022:	A9FF    	LDA #$FF       ; Space char
C3/9024:	8D8021  	STA $2180      ; Add to string
C3/9027:	88      	DEY            ; One less left
C3/9028:	D0FA    	BNE $9024      ; Loop till last
C3/902A:	9C8021  	STZ $2180      ; End string
C3/902D:	60      	RTS

Window layout for party gear overview
C3/902E:	8B581C18	; 30x26 at $588B

Draw Equip menu, create portrait, update status via gear
C3/9032:	209390  	JSR $9093      ; Do boxes; face
C3/9035:	201B91  	JSR $911B      ; Draw info; status
C3/9038:	A92C    	LDA #$2C       ; Palette 3
C3/903A:	8529    	STA $29        ; Color: Blue
C3/903C:	A2AEA2  	LDX #$A2AE     ; Text ptrs loc
C3/903F:	A00400  	LDY #$0004     ; Strings: 2
C3/9042:	20BA69  	JSR $69BA      ; Draw Head, Body
C3/9045:	204E90  	JSR $904E      ; Draw top options
C3/9048:	206E0E  	JSR $0E6E      ; Upload BG3 A+B
C3/904B:	4C0F9E  	JMP $9E0F      ; Queue text upload

Draw options in Equip menu
C3/904E:	A920    	LDA #$20       ; Palette 0
C3/9050:	8529    	STA $29        ; Color: User's
C3/9052:	A2A6A2  	LDX #$A2A6     ; Text ptrs loc
C3/9055:	A00800  	LDY #$0008     ; Strings: 4
C3/9058:	20BA69  	JSR $69BA      ; Draw text
C3/905B:	60      	RTS

Draw options in Relic menu
C3/905C:	A920    	LDA #$20       ; Palette 0
C3/905E:	8529    	STA $29        ; Color: User's
C3/9060:	A2B2A2  	LDX #$A2B2     ; Text ptrs loc
C3/9063:	A00400  	LDY #$0004     ; Strings: 2
C3/9066:	20BA69  	JSR $69BA      ; Draw text
C3/9069:	60      	RTS

Draw Relic menu, memorize original relics, create portrait
C3/906A:	209390  	JSR $9093      ; Do boxes; face
C3/906D:	20F293  	JSR $93F2      ; Define Y
C3/9070:	B92300  	LDA $0023,Y    ; Relic 1
C3/9073:	85B0    	STA $B0        ; Save for Reequip
C3/9075:	B92400  	LDA $0024,Y    ; Relic 2
C3/9078:	85B1    	STA $B1        ; Save for Reequip
C3/907A:	203191  	JSR $9131      ; Draw info; status
C3/907D:	A92C    	LDA #$2C       ; Palette 3
C3/907F:	8529    	STA $29        ; Color: Blue
C3/9081:	A2B6A2  	LDX #$A2B6     ; Text ptrs loc
C3/9084:	A00400  	LDY #$0004     ; Strings: 2
C3/9087:	20BA69  	JSR $69BA      ; Draw 2x "Relic"
C3/908A:	205C90  	JSR $905C      ; Draw menu options
C3/908D:	20ABA6  	JSR $A6AB      ; Build desc map
C3/9090:	4C6E0E  	JMP $0E6E      ; Upload BG3 A+B

Draw elements shared by Equip and Relic menus, create portrait
C3/9093:	201091  	JSR $9110      ; Load actor stats
C3/9096:	C220    	REP #$20       ; 16-bit A
C3/9098:	A90001  	LDA #$0100     ; BG1 H-Shift: 256
C3/909B:	8FD09B7E	STA $7E9BD0    ; Hide gear list
C3/909F:	E220    	SEP #$20       ; 8-bit A
C3/90A1:	A901    	LDA #$01       ; 64x32 at $0000
C3/90A3:	8D0721  	STA $2107      ; Set BG1 map loc
C3/90A6:	A942    	LDA #$42       ; 32x64 at $4000
C3/90A8:	8D0921  	STA $2109      ; Set BG3 map loc
C3/90AB:	200C96  	JSR $960C      ; Reset BG2 X-Pos
C3/90AE:	20286A  	JSR $6A28      ; Clear BG2 map A
C3/90B1:	202D6A  	JSR $6A2D      ; Clear BG2 map B
C3/90B4:	A07F94  	LDY #$947F     ; C3/947F
C3/90B7:	204103  	JSR $0341      ; Draw stats box A
C3/90BA:	A08394  	LDY #$9483     ; C3/9483
C3/90BD:	204103  	JSR $0341      ; Draw gear box A
C3/90C0:	A08794  	LDY #$9487     ; C3/9487
C3/90C3:	204103  	JSR $0341      ; Draw option box
C3/90C6:	A08B94  	LDY #$948B     ; C3/948B
C3/90C9:	204103  	JSR $0341      ; Draw stats box B
C3/90CC:	A08F94  	LDY #$948F     ; C3/948F
C3/90CF:	204103  	JSR $0341      ; Draw gear box B
C3/90D2:	A09394  	LDY #$9493     ; C3/9493
C3/90D5:	204103  	JSR $0341      ; Draw title box
C3/90D8:	20520E  	JSR $0E52      ; Upload windows
C3/90DB:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/90DE:	20196A  	JSR $6A19      ; Clear BG1 map B
C3/90E1:	20280E  	JSR $0E28      ; Upload BG1 A+B
C3/90E4:	20360E  	JSR $0E36      ; Upload BG1 C...
C3/90E7:	203C6A  	JSR $6A3C      ; Clear BG3 map A
C3/90EA:	20416A  	JSR $6A41      ; Clear BG3 map B
C3/90ED:	20E593  	JSR $93E5      ; Draw actor name
C3/90F0:	20B261  	JSR $61B2      ; Create portrait
C3/90F3:	A92C    	LDA #$2C       ; Palette 3
C3/90F5:	8529    	STA $29        ; Color: Blue
C3/90F7:	A24DA3  	LDX #$A34D     ; Text ptrs loc
C3/90FA:	A01C00  	LDY #$001C     ; Strings: 14
C3/90FD:	20BA69  	JSR $69BA      ; Draw Vigor, etc.
C3/9100:	A92C    	LDA #$2C       ; ...
C3/9102:	8529    	STA $29        ; ...
C3/9104:	A269A3  	LDX #$A369     ; Text ptrs loc
C3/9107:	A00800  	LDY #$0008     ; Strings: 4
C3/910A:	20BA69  	JSR $69BA      ; Draw Speed, etc.
C3/910D:	4C6E0E  	JMP $0E6E      ; Upload BG3 A+B

Load member's stats and properties with gear
C3/9110:	7B      	TDC            ; Clear A
C3/9111:	A528    	LDA $28        ; Member slot
C3/9113:	AA      	TAX            ; Index it
C3/9114:	B569    	LDA $69,X      ; Actor
C3/9116:	220600C2	JSL $C20006    ; Load data
C3/911A:	60      	RTS

Draw actor info in Equip menu, update status based on gear
C3/911B:	207599  	JSR $9975      ; Draw hand names
C3/911E:	A920    	LDA #$20       ; Palette 0
C3/9120:	8529    	STA $29        ; Color: User's
C3/9122:	203E91  	JSR $913E      ; Do stats; status
C3/9125:	202D92  	JSR $922D      ; SFC: Relic FX...
C3/9128:	20FC93  	JSR $93FC      ; Draw arms
C3/912B:	203594  	JSR $9435      ; Draw helmet
C3/912E:	4C4394  	JMP $9443      ; Draw armor

Draw actor info in Relic menu, update status based on gear
C3/9131:	A920    	LDA #$20       ; Palette 0
C3/9133:	8529    	STA $29        ; Color: User's
C3/9135:	203E91  	JSR $913E      ; Do stats; status
C3/9138:	205194  	JSR $9451      ; Draw relic 1
C3/913B:	4C5F94  	JMP $945F      ; Draw relic 2

Draw current stats in gear menu, update status based on gear
C3/913E:	201091  	JSR $9110      ; Load actor stats
C3/9141:	20F293  	JSR $93F2      ; Actor's address
C3/9144:	20E899  	JSR $99E8      ; Set Bat.Pwr mode
C3/9147:	200792  	JSR $9207      ; Relocate stats
C3/914A:	8B      	PHB            ; Save DB
C3/914B:	A97E    	LDA #$7E       ; Bank: 7E
C3/914D:	48      	PHA            ; Put on stack
C3/914E:	AB      	PLB            ; Set DB to 7E
C3/914F:	20C491  	JSR $91C4      ; Update status
C3/9152:	AD0630  	LDA $3006      ; Vigor
C3/9155:	20E004  	JSR $04E0      ; Turn into text
C3/9158:	A2B77C  	LDX #$7CB7     ; Text position
C3/915B:	20C004  	JSR $04C0      ; Draw 3 digits
C3/915E:	AD0430  	LDA $3004      ; Speed
C3/9161:	20E004  	JSR $04E0      ; Turn into text
C3/9164:	A2377D  	LDX #$7D37     ; Text position
C3/9167:	20C004  	JSR $04C0      ; Draw 3 digits
C3/916A:	AD0230  	LDA $3002      ; Stamina
C3/916D:	20E004  	JSR $04E0      ; Turn into text
C3/9170:	A2B77D  	LDX #$7DB7     ; Text position
C3/9173:	20C004  	JSR $04C0      ; Draw 3 digits
C3/9176:	AD0030  	LDA $3000      ; Mag.Pwr
C3/9179:	20E004  	JSR $04E0      ; Turn into text
C3/917C:	A2377E  	LDX #$7E37     ; Text position
C3/917F:	20C004  	JSR $04C0      ; Draw 3 digits
C3/9182:	20AB93  	JSR $93AB      ; Define Bat.Pwr
C3/9185:	A6F1    	LDX $F1        ; Load it
C3/9187:	86F3    	STX $F3        ; Save for $052E
C3/9189:	202E05  	JSR $052E      ; Turn into text
C3/918C:	A2B77E  	LDX #$7EB7     ; Text position
C3/918F:	208604  	JSR $0486      ; Draw 3 digits
C3/9192:	AD1A30  	LDA $301A      ; Defense
C3/9195:	20E004  	JSR $04E0      ; Turn into text
C3/9198:	A2377F  	LDX #$7F37     ; Text position
C3/919B:	20C004  	JSR $04C0      ; Draw 3 digits
C3/919E:	AD0830  	LDA $3008      ; Evade
C3/91A1:	20E004  	JSR $04E0      ; Turn into text
C3/91A4:	A2B77F  	LDX #$7FB7     ; Text position
C3/91A7:	20C004  	JSR $04C0      ; Draw 3 digits
C3/91AA:	AD1B30  	LDA $301B      ; Mag.Def
C3/91AD:	20E004  	JSR $04E0      ; Turn into text
C3/91B0:	A23780  	LDX #$8037     ; Text position
C3/91B3:	20C004  	JSR $04C0      ; Draw 3 digits
C3/91B6:	AD0A30  	LDA $300A      ; MBlock
C3/91B9:	20E004  	JSR $04E0      ; Turn into text
C3/91BC:	A2B780  	LDX #$80B7     ; Text position
C3/91BF:	20C004  	JSR $04C0      ; Draw 3 digits
C3/91C2:	AB      	PLB            ; Restore DB
C3/91C3:	60      	RTS

Update status based on gear (Rage denotes Auto Float)
C3/91C4:	20F293  	JSR $93F2      ; Define Y
C3/91C7:	AF32307E	LDA $7E3032    ; Gear immunity
C3/91CB:	20EC91  	JSR $91EC      ; Deny ailments
C3/91CE:	AD3430  	LDA $3034      ; Gear auto status
C3/91D1:	2901    	AND #$01       ; Float?
C3/91D3:	D007    	BNE $91DC      ; Branch if so
C3/91D5:	B91500  	LDA $0015,Y    ; Actor's status
C3/91D8:	2901    	AND #$01       ; Rage?
C3/91DA:	F00F    	BEQ $91EB      ; Exit if not
C3/91DC:	AD3430  	LDA $3034      ; Gear auto status
C3/91DF:	18      	CLC            ; Prepare ROR
C3/91E0:	2901    	AND #$01       ; Get Float
C3/91E2:	85E0    	STA $E0        ; Memorize it
C3/91E4:	6A      	ROR A          ; Put in Carry
C3/91E5:	6A      	ROR A          ; Put in bit 7
C3/91E6:	05E0    	ORA $E0        ; Add Float as Rage
C3/91E8:	991500  	STA $0015,Y    ; Set actor status
C3/91EB:	60      	RTS

Cure ailments blocked by gear
C3/91EC:	2925    	AND #$25       ; Dark, Poison, Imp
C3/91EE:	49FF    	EOR #$FF       ; Toggle all bits
C3/91F0:	85E1    	STA $E1        ; Save immunities
C3/91F2:	B91400  	LDA $0014,Y    ; Actor's status
C3/91F5:	25E1    	AND $E1        ; Lift immune ones
C3/91F7:	991400  	STA $0014,Y    ; Save changes
C3/91FA:	60      	RTS

Grant Float status if bestowed by gear
C3/91FB:	18      	CLC            ; Prepare ROR
C3/91FC:	2901    	AND #$01       ; Auto Float
C3/91FE:	6A      	ROR A          ; Put in Carry
C3/91FF:	6A      	ROR A          ; Put in bit 7
C3/9200:	191500  	ORA $0015,Y    ; Add status
C3/9203:	991500  	STA $0015,Y    ; Set status
C3/9206:	60      	RTS

Load actor's info for Equip or Relic menu
C3/9207:	A600    	LDX $00        ; 1st: Mag.Pwr
C3/9209:	C220    	REP #$20       ; 16-bit A
C3/920B:	BDA011  	LDA $11A0,X    ; Actor info
C3/920E:	9F00307E	STA $7E3000,X  ; Set as current
C3/9212:	E8      	INX            ; Index +1
C3/9213:	E8      	INX            ; Index +1
C3/9214:	BDA011  	LDA $11A0,X    ; Actor info
C3/9217:	9F00307E	STA $7E3000,X  ; Set as current
C3/921B:	E8      	INX            ; Index +1
C3/921C:	E8      	INX            ; Index +1
C3/921D:	E04000  	CPX #$0040     ; Done 64 bytes?
C3/9220:	D0E9    	BNE $920B      ; Loop if not
C3/9222:	E220    	SEP #$20       ; 8-bit A
C3/9224:	A5A1    	LDA $A1        ; 2-hand flag
C3/9226:	85A0    	STA $A0        ; Set as current
C3/9228:	A5CD    	LDA $CD        ; Genji G. flag
C3/922A:	85CE    	STA $CE        ; Set as current
C3/922C:	60      	RTS            ; ...
C3/922D:	60      	RTS

Set text color to blue (SFC)
C3/922E:	A92C    	LDA #$2C       ; Palette 3
C3/9230:	8529    	STA $29        ; Color: Blue
C3/9232:	60      	RTS

Draw projected stats in Equip or Relic menu
C3/9233:	AF899D7E	LDA $7E9D89    ; Empty item list?
C3/9237:	F005    	BEQ $923E      ; Abort if so
C3/9239:	20429A  	JSR $9A42      ; On a gray item?
C3/923C:	B003    	BCS $9241      ; Branch if not
C3/923E:	4C879C  	JMP $9C87      ; Clear stats
C3/9241:	20F293  	JSR $93F2      ; Actor's address
C3/9244:	A525    	LDA $25        ; Submenu
C3/9246:	C902    	CMP #$02       ; Equip menu?
C3/9248:	F004    	BEQ $924E      ; Branch if so
C3/924A:	C8      	INY            ; Point to L-Hand
C3/924B:	C8      	INY            ; Point to head
C3/924C:	C8      	INY            ; Point to body
C3/924D:	C8      	INY            ; Point to relic 1
C3/924E:	C221    	REP #$21       ; 16-bit A; C-
C3/9250:	98      	TYA            ; Actor's address
C3/9251:	E220    	SEP #$20       ; 8-bit A
C3/9253:	655F    	ADC $5F        ; Add body slot
C3/9255:	A8      	TAY            ; Index sum
C3/9256:	7B      	TDC            ; Clear A
C3/9257:	A54B    	LDA $4B        ; Gear list slot
C3/9259:	AA      	TAX            ; Index it
C3/925A:	BF8A9D7E	LDA $7E9D8A,X  ; Inventory slot
C3/925E:	AA      	TAX            ; Index it
C3/925F:	B91F00  	LDA $001F,Y    ; Equipped item
C3/9262:	8564    	STA $64        ; Preserve it
C3/9264:	BD6918  	LDA $1869,X    ; Inventory item
C3/9267:	991F00  	STA $001F,Y    ; Put on actor
C3/926A:	5A      	PHY            ; Save actor adr
C3/926B:	201091  	JSR $9110      ; Load actor data
C3/926E:	20F293  	JSR $93F2      ; Base actor adr
C3/9271:	20E899  	JSR $99E8      ; Set Bat.Pwr mode
C3/9274:	202093  	JSR $9320      ; Set stat colors
C3/9277:	ADA611  	LDA $11A6      ; New Vigor
C3/927A:	20E004  	JSR $04E0      ; Turn into text
C3/927D:	A2BF7C  	LDX #$7CBF     ; Text position
C3/9280:	AF40307E	LDA $7E3040    ; Vigor palette
C3/9284:	8529    	STA $29        ; Set as current
C3/9286:	20C004  	JSR $04C0      ; Draw 3 digits
C3/9289:	ADA411  	LDA $11A4      ; New Speed
C3/928C:	20E004  	JSR $04E0      ; Turn into text
C3/928F:	A23F7D  	LDX #$7D3F     ; Text position
C3/9292:	AF41307E	LDA $7E3041    ; Speed palette
C3/9296:	8529    	STA $29        ; Set as current
C3/9298:	20C004  	JSR $04C0      ; Draw 3 digits
C3/929B:	ADA211  	LDA $11A2      ; New Stamina
C3/929E:	20E004  	JSR $04E0      ; Turn into text
C3/92A1:	A2BF7D  	LDX #$7DBF     ; Text position
C3/92A4:	AF42307E	LDA $7E3042    ; Stamina palette
C3/92A8:	8529    	STA $29        ; Set as current
C3/92AA:	20C004  	JSR $04C0      ; Draw 3 digits
C3/92AD:	ADA011  	LDA $11A0      ; New Mag.Pwr
C3/92B0:	20E004  	JSR $04E0      ; Turn into text
C3/92B3:	A23F7E  	LDX #$7E3F     ; Text position
C3/92B6:	AF43307E	LDA $7E3043    ; Mag.Pwr palette
C3/92BA:	8529    	STA $29        ; Set as current
C3/92BC:	20C004  	JSR $04C0      ; Draw 3 digits
C3/92BF:	207193  	JSR $9371      ; Define Bat.Pwr
C3/92C2:	202E05  	JSR $052E      ; Turn into text
C3/92C5:	A2BF7E  	LDX #$7EBF     ; Text position
C3/92C8:	AF48307E	LDA $7E3048    ; Bat.Pwr palette
C3/92CC:	8529    	STA $29        ; Set as current
C3/92CE:	208604  	JSR $0486      ; Draw 3 digits
C3/92D1:	ADBA11  	LDA $11BA      ; New Defense
C3/92D4:	20E004  	JSR $04E0      ; Turn into text
C3/92D7:	A23F7F  	LDX #$7F3F     ; Text position
C3/92DA:	AF44307E	LDA $7E3044    ; Defense palette
C3/92DE:	8529    	STA $29        ; Set as current
C3/92E0:	20C004  	JSR $04C0      ; Draw 3 digits
C3/92E3:	ADA811  	LDA $11A8      ; New Evade
C3/92E6:	20E004  	JSR $04E0      ; Turn into text
C3/92E9:	A2BF7F  	LDX #$7FBF     ; Text position
C3/92EC:	AF45307E	LDA $7E3045    ; Evade palette
C3/92F0:	8529    	STA $29        ; Set as current
C3/92F2:	20C004  	JSR $04C0      ; Draw 3 digits
C3/92F5:	ADBB11  	LDA $11BB      ; New Mag.Def
C3/92F8:	20E004  	JSR $04E0      ; Turn into text
C3/92FB:	A23F80  	LDX #$803F     ; Text position
C3/92FE:	AF46307E	LDA $7E3046    ; Mag.Def palette
C3/9302:	8529    	STA $29        ; Set as current
C3/9304:	20C004  	JSR $04C0      ; Draw 3 digits
C3/9307:	ADAA11  	LDA $11AA      ; New MBlock
C3/930A:	20E004  	JSR $04E0      ; Turn into text
C3/930D:	A2BF80  	LDX #$80BF     ; Text position
C3/9310:	AF47307E	LDA $7E3047    ; MBlock palette
C3/9314:	8529    	STA $29        ; Set as current
C3/9316:	20C004  	JSR $04C0      ; Draw 3 digits
C3/9319:	7A      	PLY            ; Actor address
C3/931A:	A564    	LDA $64        ; Original item
C3/931C:	991F00  	STA $001F,Y    ; Restore gear
C3/931F:	60      	RTS

Set color for each projected stat in Equip or Relic menu
C3/9320:	8B      	PHB            ; Save DB
C3/9321:	A97E    	LDA #$7E       ; Bank: 7E
C3/9323:	48      	PHA            ; Put on stack
C3/9324:	AB      	PLB            ; Set DB to 7E
C3/9325:	7B      	TDC            ; Clear A
C3/9326:	AA      	TAX            ; Stat index: 0
C3/9327:	BF6993C3	LDA $C39369,X  ; Stat pointer
C3/932B:	DA      	PHX            ; Save index
C3/932C:	AA      	TAX            ; Index pointer
C3/932D:	BFA01100	LDA $0011A0,X  ; Projected stat
C3/9331:	DD0030  	CMP $3000,X    ; Matches old?
C3/9334:	F006    	BEQ $933C      ; Branch if so
C3/9336:	9008    	BCC $9340      ; Gray if less
C3/9338:	A928    	LDA #$28       ; Palette 2
C3/933A:	8006    	BRA $9342      ; Color: Yellow

Fork: Use player's color
C3/933C:	A920    	LDA #$20       ; Palette 0
C3/933E:	8002    	BRA $9342      ; Skip a line

Fork: Gray out statistic
C3/9340:	A924    	LDA #$24       ; Palette 1
C3/9342:	FA      	PLX            ; Stat index
C3/9343:	9D4030  	STA $3040,X    ; Set stat color
C3/9346:	E8      	INX            ; Stat index +1
C3/9347:	E00800  	CPX #$0008     ; Done 8 stats?
C3/934A:	D0DB    	BNE $9327      ; Loop if not

Fork: Handle Bat.Pwr
C3/934C:	207193  	JSR $9371      ; Set new Bat.Pwr
C3/934F:	20AB93  	JSR $93AB      ; Set old Bat.Pwr
C3/9352:	A4F3    	LDY $F3        ; New Bat.Pwr
C3/9354:	C4F1    	CPY $F1        ; Matches old?
C3/9356:	F006    	BEQ $935E      ; Branch if so
C3/9358:	9008    	BCC $9362      ; Gray if less
C3/935A:	A928    	LDA #$28       ; Palette 2
C3/935C:	8006    	BRA $9364      ; Font: Yellow

Fork: Use player's color for Bat.Pwr
C3/935E:	A920    	LDA #$20       ; Palette 0
C3/9360:	8002    	BRA $9364      ; Skip a line

Fork: Gray out Bat.Pwr
C3/9362:	A924    	LDA #$24       ; Palette 1
C3/9364:	8D4830  	STA $3048      ; Set BP color
C3/9367:	AB      	PLB            ; Restore DB
C3/9368:	60      	RTS

Ordered index list for loading stats
C3/9369:	06      	; Vigor
C3/936A:	04      	; Speed
C3/936B:	02      	; Stamina
C3/936C:	00      	; Mag.Pwr
C3/936D:	1A      	; Defense
C3/936E:	08      	; Evade
C3/936F:	1B      	; Mag.Def
C3/9370:	0A      	; MBlock

Define current (Status) or projected (Equip, Relic) Bat.Pwr
C3/9371:	A5A1    	LDA $A1        ; 2-hand mode?
C3/9373:	F016    	BEQ $938B      ; Branch if not
C3/9375:	AFAC1100	LDA $0011AC    ; R-Hand's power
C3/9379:	F006    	BEQ $9381      ; Branch if 0
C3/937B:	8FAD1100	STA $0011AD    ; Set as L-Hand's
C3/937F:	8019    	BRA $939A      ; Combine hands

Fork: Two-handing L-Hand weapon
C3/9381:	AFAD1100	LDA $0011AD    ; L-Hand's power
C3/9385:	8FAC1100	STA $0011AC    ; Set as R-Hand's
C3/9389:	800F    	BRA $939A      ; Combine hands

Fork: Not two-handing a weapon
C3/938B:	A5CD    	LDA $CD        ; Got Genji Glove?
C3/938D:	D00B    	BNE $939A      ; Branch if so
C3/938F:	AFAC1100	LDA $0011AC    ; R-Hand's power
C3/9393:	F005    	BEQ $939A      ; Branch if 0
C3/9395:	7B      	TDC            ; Bat.Pwr: 0
C3/9396:	8FAD1100	STA $0011AD    ; Set L-Hand's

Fork: Combine hands' Bat.Pwr
C3/939A:	AFAC1100	LDA $0011AC    ; R-Hand's power
C3/939E:	18      	CLC            ; Prepare ADC
C3/939F:	6FAD1100	ADC $0011AD    ; Add L-Hand's
C3/93A3:	85F3    	STA $F3        ; Set Bat.Pwr LB
C3/93A5:	7B      	TDC            ; Zero A
C3/93A6:	6900    	ADC #$00       ; +1 if overflow
C3/93A8:	85F4    	STA $F4        ; Set Bat.Pwr HB
C3/93AA:	60      	RTS

Define current Bat.Pwr for Equip or Relic menu
C3/93AB:	A5A0    	LDA $A0        ; 2-hand mode?
C3/93AD:	F016    	BEQ $93C5      ; Branch if not
C3/93AF:	AF0C307E	LDA $7E300C    ; R-Hand's power
C3/93B3:	F006    	BEQ $93BB      ; Branch if 0
C3/93B5:	8F0D307E	STA $7E300D    ; Set as L-Hand's
C3/93B9:	8019    	BRA $93D4      ; Combine hands

Fork: Two-handing L-Hand weapon
C3/93BB:	AF0D307E	LDA $7E300D    ; L-Hand's power
C3/93BF:	8F0C307E	STA $7E300C    ; Set as R-Hand's
C3/93C3:	800F    	BRA $93D4      ; Combine hands

Fork: Not two-handing a weapon
C3/93C5:	A5CE    	LDA $CE        ; Got Genji Glove?
C3/93C7:	D00B    	BNE $93D4      ; Branch if so
C3/93C9:	AF0C307E	LDA $7E300C    ; R-Hand's power
C3/93CD:	F005    	BEQ $93D4      ; Branch if 0
C3/93CF:	7B      	TDC            ; Bat.Pwr: 0
C3/93D0:	8F0D307E	STA $7E300D    ; Set L-Hand's

Fork: Combine hands' Bat.Pwr
C3/93D4:	AF0C307E	LDA $7E300C    ; R-Hand's power
C3/93D8:	18      	CLC            ; Prepare ADC
C3/93D9:	6F0D307E	ADC $7E300D    ; Add L-Hand's
C3/93DD:	85F1    	STA $F1        ; Set Bat.Pwr LB
C3/93DF:	7B      	TDC            ; Zero A
C3/93E0:	6900    	ADC #$00       ; +1 if overflow
C3/93E2:	85F2    	STA $F2        ; Set Bat.Pwr HB
C3/93E4:	60      	RTS

Draw actor name in Equip or Relic menu
C3/93E5:	20F293  	JSR $93F2      ; Actor's address
C3/93E8:	A920    	LDA #$20       ; Palette 0
C3/93EA:	8529    	STA $29        ; Color: User's
C3/93EC:	A0B77B  	LDY #$7BB7     ; Text position
C3/93EF:	4CCF34  	JMP $34CF      ; Draw actor name

Load member's SRAM block address
C3/93F2:	7B      	TDC            ; Clear A
C3/93F3:	A528    	LDA $28        ; Member slot
C3/93F5:	0A      	ASL A          ; Double it
C3/93F6:	AA      	TAX            ; Index it
C3/93F7:	B46D    	LDY $6D,X      ; Address
C3/93F9:	8467    	STY $67        ; Memorize it
C3/93FB:	60      	RTS

Draw equipped armaments in Equip menu
C3/93FC:	201D94  	JSR $941D      ; Test Empty x2
C3/93FF:	A21B7A  	LDX #$7A1B     ; Tilemap ptr
C3/9402:	206D94  	JSR $946D      ; Set Y, coords
C3/9405:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/9408:	20E18F  	JSR $8FE1      ; Load name
C3/940B:	20D97F  	JSR $7FD9      ; Draw name
C3/940E:	201D94  	JSR $941D      ; Test Empty x2
C3/9411:	A29B7A  	LDX #$7A9B     ; Tilemap ptr
C3/9414:	206D94  	JSR $946D      ; Set Y, coords
C3/9417:	B92000  	LDA $0020,Y    ; L-Hand item
C3/941A:	4C7994  	JMP $9479      ; Draw name

Check if "Empty" should be drawn for both hands
C3/941D:	20F293  	JSR $93F2      ; Define Y
C3/9420:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/9423:	C9FF    	CMP #$FF       ; Nothing?
C3/9425:	D00B    	BNE $9432      ; Forbid if not
C3/9427:	B92000  	LDA $0020,Y    ; L-Hand item
C3/942A:	C9FF    	CMP #$FF       ; Nothing?
C3/942C:	D004    	BNE $9432      ; Forbid if not
C3/942E:	85E0    	STA $E0        ; Allow "Empty"
C3/9430:	8002    	BRA $9434      ; Exit
C3/9432:	64E0    	STZ $E0        ; Forbid "Empty"
C3/9434:	60      	RTS

Draw equipped helmet in Equip menu
C3/9435:	A21B7B  	LDX #$7B1B     ; Tilemap ptr
C3/9438:	206D94  	JSR $946D      ; Set Y, coords
C3/943B:	64E0    	STZ $E0        ; Forbid "Empty"
C3/943D:	B92100  	LDA $0021,Y    ; Helmet
C3/9440:	4C7994  	JMP $9479      ; Draw its name

Draw equipped armor in Equip menu
C3/9443:	A29B7B  	LDX #$7B9B     ; Tilemap ptr
C3/9446:	206D94  	JSR $946D      ; Set Y, coords
C3/9449:	64E0    	STZ $E0        ; Forbid "Empty"
C3/944B:	B92200  	LDA $0022,Y    ; Armor
C3/944E:	4C7994  	JMP $9479      ; Draw its name

Draw equipped relic 1 in Relic menu
C3/9451:	A21B7B  	LDX #$7B1B     ; Tilemap ptr
C3/9454:	206D94  	JSR $946D      ; Set Y, coords
C3/9457:	64E0    	STZ $E0        ; Forbid "Empty"
C3/9459:	B92300  	LDA $0023,Y    ; Relic 1
C3/945C:	4C7994  	JMP $9479      ; Draw its name

Draw equipped relic 2 in Relic menu
C3/945F:	A29B7B  	LDX #$7B9B     ; Tilemap ptr
C3/9462:	206D94  	JSR $946D      ; Set Y, coords
C3/9465:	64E0    	STZ $E0        ; Forbid "Empty"
C3/9467:	B92400  	LDA $0024,Y    ; Relic 2
C3/946A:	4C7994  	JMP $9479      ; Draw its name

Set text position and load actor data address
C3/946D:	C220    	REP #$20       ; 16-bit A
C3/946F:	8A      	TXA            ; Tilemap ptr
C3/9470:	8F899E7E	STA $7E9E89    ; Set position
C3/9474:	E220    	SEP #$20       ; 8-bit A
C3/9476:	4CF293  	JMP $93F2      ; Load address

Load and draw equipped item's name
C3/9479:	20E18F  	JSR $8FE1      ; Load item name
C3/947C:	4CD97F  	JMP $7FD9      ; Draw item name

Window layout for Equip and Relic menus
C3/947F:	4B5B1C0D	; 30x15 at $5B4B (Stats w/o title)
C3/9483:	0B591C07	; 30x09 at $590B (Gear w/o title)
C3/9487:	8B581C02	; 30x04 at $588B (Options)
C3/948B:	4B631C0D	; 30x15 at $634B (Stats w/ title)
C3/948F:	0B611C07	; 30x09 at $610B (Gear w/ title)
C3/9493:	B7600602	; 08x04 at $60B7 (Title)

Set to condense text for party gear overview or final battle lineup
C3/9497:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/9499:	8D5043  	STA $4350      ; Set DMA mode
C3/949C:	A90E    	LDA #$0E       ; $210E
C3/949E:	8D5143  	STA $4351      ; To BG1 V-Scroll
C3/94A1:	A0D895  	LDY #$95D8     ; C3/95D8
C3/94A4:	8C5243  	STY $4352      ; Set src LBs
C3/94A7:	A9C3    	LDA #$C3       ; Bank: C3
C3/94A9:	8D5443  	STA $4354      ; Set src HB
C3/94AC:	A9C3    	LDA #$C3       ; ...
C3/94AE:	8D5743  	STA $4357      ; Set indir HB
C3/94B1:	A920    	LDA #$20       ; Channel: 5
C3/94B3:	0443    	TSB $43        ; Queue HDMA-5
C3/94B5:	60      	RTS

Set to condense text in Equip or Relic menu
C3/94B6:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/94B8:	8D5043  	STA $4350      ; Set CH5 mode
C3/94BB:	A912    	LDA #$12       ; $2112
C3/94BD:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/94C0:	A0D895  	LDY #$95D8     ; C3/95D8
C3/94C3:	8C5243  	STY $4352      ; Set CH5 src LBs
C3/94C6:	A9C3    	LDA #$C3       ; Bank: C3
C3/94C8:	8D5443  	STA $4354      ; Set CH5 src HB
C3/94CB:	A9C3    	LDA #$C3       ; ...
C3/94CD:	8D5743  	STA $4357      ; Set indir HB
C3/94D0:	A920    	LDA #$20       ; Channel: 5
C3/94D2:	0443    	TSB $43        ; Queue HDMA-5
C3/94D4:	202095  	JSR $9520      ; Load BG1 V-Data
C3/94D7:	A600    	LDX $00        ; Index: 0
C3/94D9:	BF6495C3	LDA $C39564,X  ; BG1 H-Pan data
C3/94DD:	9FC99B7E	STA $7E9BC9,X  ; Save in RAM
C3/94E1:	E8      	INX            ; Index +1
C3/94E2:	E00D00  	CPX #$000D     ; End of table?
C3/94E5:	D0F2    	BNE $94D9      ; Loop if not
C3/94E7:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/94E9:	8D6043  	STA $4360      ; Set CH6 mode
C3/94EC:	A90D    	LDA #$0D       ; $210D
C3/94EE:	8D6143  	STA $4361      ; To BG1 H-Scroll
C3/94F1:	A0C99B  	LDY #$9BC9     ; 7E/9BC9
C3/94F4:	8C6243  	STY $4362      ; Set CH6 src LBs
C3/94F7:	A97E    	LDA #$7E       ; Bank: 7E
C3/94F9:	8D6443  	STA $4364      ; Set CH6 src HB
C3/94FC:	A97E    	LDA #$7E       ; ...
C3/94FE:	8D6743  	STA $4367      ; Set indir HB
C3/9501:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/9503:	8D7043  	STA $4370      ; Set CH7 mode
C3/9506:	A90E    	LDA #$0E       ; $210E
C3/9508:	8D7143  	STA $4371      ; To BG1 V-Scroll
C3/950B:	A04998  	LDY #$9849     ; 7E/9849
C3/950E:	8C7243  	STY $4372      ; Set CH7 src LBs
C3/9511:	A97E    	LDA #$7E       ; Bank: 7E
C3/9513:	8D7443  	STA $4374      ; Set CH7 src HB
C3/9516:	A97E    	LDA #$7E       ; ...
C3/9518:	8D7743  	STA $4377      ; Set indir HB
C3/951B:	A9C0    	LDA #$C0       ; Channels: 6, 7
C3/951D:	0443    	TSB $43        ; Queue HDMA 6+7
C3/951F:	60      	RTS

Load BG1 vertical shift table for Equip or Relic menu
C3/9520:	A600    	LDX $00        ; Index: 0
C3/9522:	BF7195C3	LDA $C39571,X  ; Void's V-Data
C3/9526:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/952A:	E8      	INX            ; Index +1
C3/952B:	E01200  	CPX #$0012     ; At item data?
C3/952E:	D0F2    	BNE $9522      ; Loop if not
C3/9530:	BF7195C3	LDA $C39571,X  ; Scanline data
C3/9534:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/9538:	E8      	INX            ; Index +1
C3/9539:	7B      	TDC            ; Clear A
C3/953A:	A549    	LDA $49        ; BG1 top row
C3/953C:	0A      	ASL A          ; x2
C3/953D:	0A      	ASL A          ; x4
C3/953E:	0A      	ASL A          ; x8
C3/953F:	0A      	ASL A          ; x16
C3/9540:	29FF    	AND #$FF       ; ...
C3/9542:	C221    	REP #$21       ; 16-bit A; C-
C3/9544:	7F7195C3	ADC $C39571,X  ; Add V-Pan data
C3/9548:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/954C:	E220    	SEP #$20       ; 8-bit A
C3/954E:	E8      	INX            ; Index +1
C3/954F:	E8      	INX            ; Index +1
C3/9550:	E06300  	CPX #$0063     ; Beyond list?
C3/9553:	D0DB    	BNE $9530      ; Loop if not
C3/9555:	BF7195C3	LDA $C39571,X  ; Void's V-Data
C3/9559:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/955D:	E8      	INX            ; Index +1
C3/955E:	E06700  	CPX #$0067     ; End of table?
C3/9561:	D0F2    	BNE $9555      ; Loop if not
C3/9563:	60      	RTS

BG1 H-Shift table for gear list browsing
C3/9564:	27 0001 	; Nothing?
C3/9567:	3C 0001 	; Nothing?
C3/956A:	6C 0000 	; Item list
C3/956D:	1E 0001 	; Nothing?
C3/9570:	00      	; End

BG1 V-Shift table for gear list browsing
C3/9571:	3F 0000 	; Nothing?
C3/9574:	0C 0400 	; Nothing?
C3/9577:	0C 0800 	; Nothing?
C3/957A:	0A 0C00 	; Nothing?
C3/957D:	01 0C00 	; Nothing?
C3/9580:	01 0C00 	; Nothing?
C3/9583:	04 A0FF 	; Item row 1
C3/9586:	04 A0FF 	; Item row 2
C3/9589:	04 A0FF 	; Item row 3
C3/958C:	04 A4FF 	; Item row 4
C3/958F:	04 A4FF 	; Item row 5
C3/9592:	04 A4FF 	; Item row 6
C3/9595:	04 A8FF 	; Item row 7
C3/9598:	04 A8FF 	; Item row 8
C3/959B:	04 A8FF 	; Item row 9
C3/959E:	04 ACFF 	; Item row 10
C3/95A1:	04 ACFF 	; Item row 11
C3/95A4:	04 ACFF 	; Item row 12
C3/95A7:	04 B0FF 	; Item row 13
C3/95AA:	04 B0FF 	; Item row 14
C3/95AD:	04 B0FF 	; Item row 15
C3/95B0:	04 B4FF 	; Item row 16
C3/95B3:	04 B4FF 	; Item row 17
C3/95B6:	04 B4FF 	; Item row 18
C3/95B9:	04 B8FF 	; Item row 19
C3/95BC:	04 B8FF 	; Item row 20
C3/95BF:	04 B8FF 	; Item row 21
C3/95C2:	04 BCFF 	; Item row 22
C3/95C5:	04 BCFF 	; Item row 23
C3/95C8:	04 BCFF 	; Item row 24
C3/95CB:	04 C0FF 	; Item row 25
C3/95CE:	04 C0FF 	; Item row 26
C3/95D1:	04 C0FF 	; Item row 27
C3/95D4:	1E 1000 	; Nothing?
C3/95D7:	00      	; End

V-Shift table for gear menus and final battle lineup
C3/95D8:	0F 0000 	; Nothing
C3/95DB:	0C 0400 	; Options, title
C3/95DE:	0C 0800 	; Reequip mode
C3/95E1:	0C 0C00 	; R-Hand
C3/95E4:	0C 1000 	; L-Hand
C3/95E7:	0C 1400 	; Head, Relic 1
C3/95EA:	0C 1800 	; Body, Relic 2
C3/95ED:	0C 1C00 	; Member 2's armor
C3/95F0:	0C 2000 	; Vigor
C3/95F3:	0C 2400 	; Speed
C3/95F6:	0C 2800 	; Stamina
C3/95F9:	0C 2C00 	; Mag.Pwr
C3/95FC:	0C 3000 	; Bat.Pwr
C3/95FF:	0C 3400 	; Defense
C3/9602:	0C 3800 	; Evade
C3/9605:	0C 3C00 	; Mag.Def
C3/9608:	0C 4000 	; MBlock
C3/960B:	00      	; End

Switch to layout with options in Equip or Relic menu
C3/960C:	205D96  	JSR $965D      ; Erase title
C3/960F:	A400    	LDY $00        ; X: 0
C3/9611:	8439    	STY $39        ; Set BG2 X-Pos
C3/9613:	60      	RTS

Switch to layout without options in Equip or Relic menu
C3/9614:	205D96  	JSR $965D      ; Erase options
C3/9617:	A00001  	LDY #$0100     ; X: 256
C3/961A:	8439    	STY $39        ; Set BG2 X-Pos
C3/961C:	A92C    	LDA #$2C       ; Palette 3
C3/961E:	8529    	STA $29        ; Color: Blue
C3/9620:	60      	RTS            ; ^ For "Equip"

36: Handle Equip menu options
C3/9621:	200C96  	JSR $960C      ; Switch windows
C3/9624:	204E90  	JSR $904E      ; Draw options
C3/9627:	20568E  	JSR $8E56      ; Handle D-Pad
C3/962A:	A508    	LDA $08        ; No-autofire keys
C3/962C:	8980    	BIT #$80       ; Pushing A?
C3/962E:	F005    	BEQ $9635      ; Branch if not
C3/9630:	20B20E  	JSR $0EB2      ; Sound: Click
C3/9633:	802F    	BRA $9664      ; Handle selection

Fork: Handle B
C3/9635:	A509    	LDA $09        ; No-autofire keys
C3/9637:	8980    	BIT #$80       ; Pushing B?
C3/9639:	F00D    	BEQ $9648      ; Branch if not
C3/963B:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/963E:	201091  	JSR $9110      ; Update field FX
C3/9641:	A904    	LDA #$04       ; C3/1A8A
C3/9643:	8527    	STA $27        ; Queue main menu
C3/9645:	6426    	STZ $26        ; Next: Fade-out
C3/9647:	60      	RTS

Fork: Handle L and R, prepare for menu reset
C3/9648:	A935    	LDA #$35       ; C3/1BB8
C3/964A:	85E0    	STA $E0        ; Set init command
C3/964C:	4C2220  	JMP $2022      ; Handle L and R

Draw blue "Equip" in Equip or Relic menu
C3/964F:	A009A3  	LDY #$A309     ; Text pointer
C3/9652:	20F902  	JSR $02F9      ; Draw title
C3/9655:	60      	RTS

Draw blue "Remove" in Equip or Relic menu
C3/9656:	A011A3  	LDY #$A311     ; Text pointer
C3/9659:	20F902  	JSR $02F9      ; Draw title
C3/965C:	60      	RTS

Erase options and title in Equip or Relic menu
C3/965D:	A0EAA2  	LDY #$A2EA     ; Text pointer
C3/9660:	20F902  	JSR $02F9      ; Draw 28 spaces
C3/9663:	60      	RTS

Handle selected option in Equip menu
C3/9664:	7B      	TDC            ; Clear A
C3/9665:	A54B    	LDA $4B        ; Cursor slot
C3/9667:	0A      	ASL A          ; Double it
C3/9668:	AA      	TAX            ; Index it
C3/9669:	7C6C96  	JMP ($966C,X)  ; Handle option

Jump table for the above
C3/966C:	7496    	; EQUIP
C3/966E:	8596    	; OPTIMUM
C3/9670:	8E96    	; RMOVE
C3/9672:	9F96    	; EMPTY

Handle "EQUIP" selection in Equip menu
C3/9674:	201496  	JSR $9614      ; Switch windows
C3/9677:	204F96  	JSR $964F      ; Draw blue "EQUIP"
C3/967A:	206C8E  	JSR $8E6C      ; Load navig data
C3/967D:	20758E  	JSR $8E75      ; Relocate cursor
C3/9680:	A955    	LDA #$55       ; C3/9884
C3/9682:	8526    	STA $26        ; Next: Slot choice
C3/9684:	60      	RTS

Handle "OPTIMUM" selection in Equip menu
C3/9685:	20F096  	JSR $96F0      ; Optimize gear
C3/9688:	201B91  	JSR $911B      ; Redo text, status
C3/968B:	644D    	STZ $4D        ; Cursor: "USE"
C3/968D:	60      	RTS

Handle "RMOVE" selection in Equip menu
C3/968E:	201496  	JSR $9614      ; Switch windows
C3/9691:	205696  	JSR $9656      ; Draw blue "REMOVE"
C3/9694:	206C8E  	JSR $8E6C      ; Load navig data
C3/9697:	20758E  	JSR $8E75      ; Relocate cursor
C3/969A:	A956    	LDA #$56       ; C3/98CF
C3/969C:	8526    	STA $26        ; Next: Slot choice
C3/969E:	60      	RTS

Handle "EMPTY" selection in Equip menu
C3/969F:	20A896  	JSR $96A8      ; Remove gear
C3/96A2:	201B91  	JSR $911B      ; Redo text, status
C3/96A5:	644D    	STZ $4D        ; Cursor: "USE"
C3/96A7:	60      	RTS

Remove character's equipment
C3/96A8:	20F293  	JSR $93F2      ; Define Y
C3/96AB:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/96AE:	205E9D  	JSR $9D5E      ; Put in stock
C3/96B1:	B92000  	LDA $0020,Y    ; L-Hand item
C3/96B4:	205E9D  	JSR $9D5E      ; Put in stock
C3/96B7:	B92100  	LDA $0021,Y    ; Helmet
C3/96BA:	205E9D  	JSR $9D5E      ; Put in stock
C3/96BD:	B92200  	LDA $0022,Y    ; Armor
C3/96C0:	205E9D  	JSR $9D5E      ; Put in stock
C3/96C3:	A9FF    	LDA #$FF       ; Empty item
C3/96C5:	991F00  	STA $001F,Y    ; Clear R-Hand
C3/96C8:	992000  	STA $0020,Y    ; Clear L-Hand
C3/96CB:	992100  	STA $0021,Y    ; Clear helmet
C3/96CE:	992200  	STA $0022,Y    ; Clear armor
C3/96D1:	60      	RTS

Optimize member's equipment (event command)
C3/96D2:	201569  	JSR $6915      ; Get party info
C3/96D5:	7B      	TDC            ; Clear A
C3/96D6:	AA      	TAX            ; Member slot: 1
C3/96D7:	AD0102  	LDA $0201      ; Actor to equip
C3/96DA:	D569    	CMP $69,X      ; In member slot?
C3/96DC:	F008    	BEQ $96E6      ; Branch if so
C3/96DE:	E8      	INX            ; Member slot +1
C3/96DF:	E00400  	CPX #$0004     ; Done 4 members?
C3/96E2:	D0F6    	BNE $96DA      ; Loop if not
C3/96E4:	80FE    	BRA $96E4      ; Freeze game...
C3/96E6:	8A      	TXA            ; Member slot
C3/96E7:	8528    	STA $28        ; Memorize it
C3/96E9:	201091  	JSR $9110      ; ...
C3/96EC:	20F096  	JSR $96F0      ; Optimize gear
C3/96EF:	6B      	RTL

Optimize character's equipment
C3/96F0:	201091  	JSR $9110      ; Get gear FX
C3/96F3:	20A896  	JSR $96A8      ; Remove gear
C3/96F6:	20F293  	JSR $93F2      ; Actor's address
C3/96F9:	84F3    	STY $F3        ; Memorize it
C3/96FB:	ADD811  	LDA $11D8      ; Gear effects
C3/96FE:	2908    	AND #$08       ; Gauntlet?
C3/9700:	F018    	BEQ $971A      ; Branch if not

Fork: Put a two-handed weapon in R-Hand
C3/9702:	644B    	STZ $4B        ; ...
C3/9704:	20599B  	JSR $9B59      ; ...
C3/9707:	209597  	JSR $9795      ; Get valid items
C3/970A:	2050A1  	JSR $A150      ; Sort by power
C3/970D:	203F98  	JSR $983F      ; Pick 2H weapon
C3/9710:	A4F3    	LDY $F3        ; Actor's address
C3/9712:	991F00  	STA $001F,Y    ; Set R-Hand item
C3/9715:	20979D  	JSR $9D97      ; Adjust stock
C3/9718:	8051    	BRA $976B      ; Handle helmet

Fork: Put a weapon in R-Hand
C3/971A:	644B    	STZ $4B        ; ...
C3/971C:	20599B  	JSR $9B59      ; ...
C3/971F:	209597  	JSR $9795      ; Get valid items
C3/9722:	2050A1  	JSR $A150      ; Sort by power
C3/9725:	A4F3    	LDY $F3        ; Actor's address
C3/9727:	201998  	JSR $9819      ; Pick a weapon
C3/972A:	991F00  	STA $001F,Y    ; Put in R-Hand
C3/972D:	20979D  	JSR $9D97      ; Adjust stock
C3/9730:	ADD811  	LDA $11D8      ; Gear effects
C3/9733:	2910    	AND #$10       ; Genji Glove?
C3/9735:	D01A    	BNE $9751      ; Branch if so

Fork: Put a shield in L-Hand
C3/9737:	A901    	LDA #$01       ; ...
C3/9739:	854B    	STA $4B        ; ...
C3/973B:	20599B  	JSR $9B59      ; ...
C3/973E:	20D797  	JSR $97D7      ; Get valid items
C3/9741:	2050A1  	JSR $A150      ; Sort by defense
C3/9744:	A4F3    	LDY $F3        ; Actor's address
C3/9746:	201998  	JSR $9819      ; Pick a shield
C3/9749:	992000  	STA $0020,Y    ; Put in L-Hand
C3/974C:	20979D  	JSR $9D97      ; Adjust stock
C3/974F:	801A    	BRA $976B      ; Handle helmet

Fork: Put a weapon in L-Hand
C3/9751:	A901    	LDA #$01       ; ...
C3/9753:	854B    	STA $4B        ; ...
C3/9755:	20599B  	JSR $9B59      ; ...
C3/9758:	209597  	JSR $9795      ; Get valid items
C3/975B:	2050A1  	JSR $A150      ; Sort by power
C3/975E:	A4F3    	LDY $F3        ; Actor's address
C3/9760:	201998  	JSR $9819      ; Pick a weapon
C3/9763:	992000  	STA $0020,Y    ; Put in L-Hand
C3/9766:	20979D  	JSR $9D97      ; Adjust stock
C3/9769:	8000    	BRA $976B      ; ...

Fork: Optimize helmet
C3/976B:	A902    	LDA #$02       ; Target: Head
C3/976D:	854B    	STA $4B        ; Set body part
C3/976F:	20599B  	JSR $9B59      ; Get valid items
C3/9772:	2050A1  	JSR $A150      ; Sort by defense
C3/9775:	A4F3    	LDY $F3        ; Actor's address
C3/9777:	201998  	JSR $9819      ; Choose helmet
C3/977A:	992100  	STA $0021,Y    ; Put on actor
C3/977D:	20979D  	JSR $9D97      ; Adjust stock

Fork: Optimize armor
C3/9780:	A903    	LDA #$03       ; Target: Torso
C3/9782:	854B    	STA $4B        ; Set body part
C3/9784:	20599B  	JSR $9B59      ; Get valid items
C3/9787:	2050A1  	JSR $A150      ; Sort by defense
C3/978A:	A4F3    	LDY $F3        ; Actor's address
C3/978C:	201998  	JSR $9819      ; Choose armor
C3/978F:	992200  	STA $0022,Y    ; Put on actor
C3/9792:	4C979D  	JMP $9D97      ; Adjust stock

Compile compatible weapons for Optimum
C3/9795:	202A9C  	JSR $9C2A      ; Init list
C3/9798:	20419C  	JSR $9C41      ; Define compat
C3/979B:	A600    	LDX $00        ; Clear X
C3/979D:	9B      	TXY            ; Item slot: 1
C3/979E:	7B      	TDC            ; Clear A
C3/979F:	B96918  	LDA $1869,Y    ; Item in slot
C3/97A2:	C9FF    	CMP #$FF       ; None?
C3/97A4:	F022    	BEQ $97C8      ; Skip if so
C3/97A6:	202183  	JSR $8321      ; Compute index
C3/97A9:	AE3421  	LDX $2134      ; Load it
C3/97AC:	BF0050D8	LDA $D85000,X  ; Properties
C3/97B0:	2907    	AND #$07       ; Get class
C3/97B2:	C901    	CMP #$01       ; Weapon?
C3/97B4:	D012    	BNE $97C8      ; Skip if not
C3/97B6:	C220    	REP #$20       ; 16-bit A
C3/97B8:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/97BC:	24E7    	BIT $E7        ; Actor can use?
C3/97BE:	F008    	BEQ $97C8      ; Skip if not
C3/97C0:	E220    	SEP #$20       ; 8-bit A
C3/97C2:	98      	TYA            ; Item slot
C3/97C3:	8D8021  	STA $2180      ; Add to list
C3/97C6:	E6E0    	INC $E0        ; List size +1
C3/97C8:	E220    	SEP #$20       ; 8-bit A
C3/97CA:	C8      	INY            ; Item slot +1
C3/97CB:	C0FF00  	CPY #$00FF     ; Done 255?
C3/97CE:	D0CE    	BNE $979E      ; Loop if not
C3/97D0:	A5E0    	LDA $E0        ; List size
C3/97D2:	8F899D7E	STA $7E9D89    ; Save to list
C3/97D6:	60      	RTS

Compile compatible shields for Optimum
C3/97D7:	202A9C  	JSR $9C2A      ; Init list
C3/97DA:	20419C  	JSR $9C41      ; Define compat
C3/97DD:	A600    	LDX $00        ; Clear X
C3/97DF:	9B      	TXY            ; Item slot: 1
C3/97E0:	7B      	TDC            ; Clear A
C3/97E1:	B96918  	LDA $1869,Y    ; Item in slot
C3/97E4:	C9FF    	CMP #$FF       ; None?
C3/97E6:	F022    	BEQ $980A      ; Skip if so
C3/97E8:	202183  	JSR $8321      ; Compute index
C3/97EB:	AE3421  	LDX $2134      ; Load it
C3/97EE:	BF0050D8	LDA $D85000,X  ; Properties
C3/97F2:	2907    	AND #$07       ; Get class
C3/97F4:	C903    	CMP #$03       ; Shield?
C3/97F6:	D012    	BNE $980A      ; Skip if not
C3/97F8:	C220    	REP #$20       ; 16-bit A
C3/97FA:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/97FE:	24E7    	BIT $E7        ; Actor can use?
C3/9800:	F008    	BEQ $980A      ; Skip if not
C3/9802:	E220    	SEP #$20       ; 8-bit A
C3/9804:	98      	TYA            ; Item slot
C3/9805:	8D8021  	STA $2180      ; Add to list
C3/9808:	E6E0    	INC $E0        ; List size +1
C3/980A:	E220    	SEP #$20       ; 8-bit A
C3/980C:	C8      	INY            ; Item slot +1
C3/980D:	C0FF00  	CPY #$00FF     ; Done 255?
C3/9810:	D0CE    	BNE $97E0      ; Loop if not
C3/9812:	A5E0    	LDA $E0        ; List size
C3/9814:	8F899D7E	STA $7E9D89    ; Save to list
C3/9818:	60      	RTS

Select first non-excluded item in sorted list of compatible gear
C3/9819:	5A      	PHY            ; Save Y
C3/981A:	8B      	PHB            ; Save DB
C3/981B:	A97E    	LDA #$7E       ; Bank: 7E
C3/981D:	48      	PHA            ; Put on stack
C3/981E:	AB      	PLB            ; Set DB to 7E
C3/981F:	7B      	TDC            ; Clear A
C3/9820:	A8      	TAY            ; RAM index: 0
C3/9821:	7B      	TDC            ; Clear A
C3/9822:	AA      	TAX            ; ROM index: 0
C3/9823:	DA      	PHX            ; Save index
C3/9824:	7B      	TDC            ; ...
C3/9825:	B98A9D  	LDA $9D8A,Y    ; Stock slot
C3/9828:	AA      	TAX            ; Index it
C3/9829:	BD6918  	LDA $1869,X    ; Item in slot
C3/982C:	FA      	PLX            ; ROM index
C3/982D:	DFE482ED	CMP $ED82E4,X  ; Excluded?
C3/9831:	F009    	BEQ $983C      ; Skip if so
C3/9833:	E8      	INX            ; ROM index +1
C3/9834:	E00A00  	CPX #$000A     ; Tested 10?
C3/9837:	D0EA    	BNE $9823      ; Loop if not
C3/9839:	AB      	PLB            ; Restore DB
C3/983A:	7A      	PLY            ; Restore Y
C3/983B:	60      	RTS            ; Exit
C3/983C:	C8      	INY            ; RAM index +1
C3/983D:	80E2    	BRA $9821      ; Try next item

Exclusions: Cursed Shld, Thornlet, Imp set, Atma Weapon, Drainer, Soul Sabre, Heal Rod


Select first two-handed weapon from sorted list of compatible gear
C3/983F:	AF899D7E	LDA $7E9D89    ; List size
C3/9843:	F03C    	BEQ $9881      ; Branch if 0
C3/9845:	85CB    	STA $CB        ; Memorize it
C3/9847:	64CC    	STZ $CC        ; Clear its HB
C3/9849:	7B      	TDC            ; Clear A
C3/984A:	A8      	TAY            ; RAM index: 0
C3/984B:	7B      	TDC            ; Clear A
C3/984C:	AA      	TAX            ; ROM index: 0
C3/984D:	DA      	PHX            ; Save index
C3/984E:	7B      	TDC            ; ...
C3/984F:	BB      	TYX            ; RAM index
C3/9850:	BF8A9D7E	LDA $7E9D8A,X  ; Stock slot
C3/9854:	AA      	TAX            ; Index it
C3/9855:	BD6918  	LDA $1869,X    ; Item in slot
C3/9858:	FA      	PLX            ; ROM index
C3/9859:	DFE482ED	CMP $ED82E4,X  ; Excluded?
C3/985D:	F019    	BEQ $9878      ; Skip if so
C3/985F:	E8      	INX            ; ROM index +1
C3/9860:	E00A00  	CPX #$000A     ; Tested 10?
C3/9863:	D0E8    	BNE $984D      ; Loop if not
C3/9865:	85C9    	STA $C9        ; Save item
C3/9867:	202183  	JSR $8321      ; Compute index
C3/986A:	AE3421  	LDX $2134      ; Load it
C3/986D:	BF1350D8	LDA $D85013,X  ; Properties
C3/9871:	2940    	AND #$40       ; 2-hand OK?
C3/9873:	F003    	BEQ $9878      ; Skip if not
C3/9875:	A5C9    	LDA $C9        ; Item
C3/9877:	60      	RTS

Fork: Try next weapon, ignore Gauntlet if no valid options
C3/9878:	C8      	INY            ; RAM index +1
C3/9879:	C4CB    	CPY $CB        ; End of list?
C3/987B:	D0CE    	BNE $984B      ; Loop if not
C3/987D:	201998  	JSR $9819      ; Pick 1H weapon
C3/9880:	60      	RTS

Fork: Default to empty item
C3/9881:	A9FF    	LDA #$FF       ; Empty item
C3/9883:	60      	RTS

55: Handle selection of gear slot to fill
C3/9884:	20728E  	JSR $8E72      ; Handle D-Pad
C3/9887:	207599  	JSR $9975      ; Recolor hand names
C3/988A:	A508    	LDA $08        ; No-autofire keys
C3/988C:	8980    	BIT #$80       ; Pushing A?
C3/988E:	F024    	BEQ $98B4      ; Branch if not
C3/9890:	20B20E  	JSR $0EB2      ; Sound: Click
C3/9893:	A54E    	LDA $4E        ; Cursor row
C3/9895:	855F    	STA $5F        ; Set body slot
C3/9897:	A957    	LDA #$57       ; C3/990F
C3/9899:	8526    	STA $26        ; Next: Item list
C3/989B:	20599B  	JSR $9B59      ; Build item list
C3/989E:	2050A1  	JSR $A150      ; Sort it by power
C3/98A1:	20EB9A  	JSR $9AEB      ; Cursor & Scrollbar
C3/98A4:	A955    	LDA #$55       ; Return here if..
C3/98A6:	8527    	STA $27        ; ..list is empty
C3/98A8:	203392  	JSR $9233      ; Draw stat preview
C3/98AB:	20156A  	JSR $6A15      ; Blank item list
C3/98AE:	206813  	JSR $1368      ; Refresh screen
C3/98B1:	4CAC9C  	JMP $9CAC      ; Draw item list

Fork: Handle B
C3/98B4:	A509    	LDA $09        ; No-autofire keys
C3/98B6:	8980    	BIT #$80       ; Pushing B?
C3/98B8:	F00E    	BEQ $98C8      ; Branch if not
C3/98BA:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/98BD:	20508E  	JSR $8E50      ; Load navig data
C3/98C0:	20598E  	JSR $8E59      ; Relocate cursor
C3/98C3:	A936    	LDA #$36       ; C3/9621
C3/98C5:	8526    	STA $26        ; Next: Option list
C3/98C7:	60      	RTS

Fork: Handle L and R, prepare for menu reset
C3/98C8:	A97E    	LDA #$7E       ; C3/1BE5
C3/98CA:	85E0    	STA $E0        ; Set init command
C3/98CC:	4C2220  	JMP $2022      ; Handle L and R

56: Handle manual gear removal
C3/98CF:	20728E  	JSR $8E72      ; Handle D-Pad
C3/98D2:	A508    	LDA $08        ; No-autofire keys
C3/98D4:	8980    	BIT #$80       ; Pushing A?
C3/98D6:	F01C    	BEQ $98F4      ; Branch if not
C3/98D8:	20B20E  	JSR $0EB2      ; Sound: Click
C3/98DB:	20F293  	JSR $93F2      ; Actor's address
C3/98DE:	C221    	REP #$21       ; 16-bit A; C-
C3/98E0:	98      	TYA            ; Move it to A
C3/98E1:	E220    	SEP #$20       ; 8-bit A
C3/98E3:	654B    	ADC $4B        ; Add cursor slot
C3/98E5:	A8      	TAY            ; Index sum
C3/98E6:	B91F00  	LDA $001F,Y    ; Item in slot
C3/98E9:	205E9D  	JSR $9D5E      ; Put in stock
C3/98EC:	A9FF    	LDA #$FF       ; Empty item
C3/98EE:	991F00  	STA $001F,Y    ; Clear gear slot
C3/98F1:	201B91  	JSR $911B      ; Redo text, status

Fork: Handle B
C3/98F4:	A509    	LDA $09        ; No-autofire keys
C3/98F6:	8980    	BIT #$80       ; Pushing B?
C3/98F8:	F00E    	BEQ $9908      ; Branch if not
C3/98FA:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/98FD:	20508E  	JSR $8E50      ; Load navig data
C3/9900:	20598E  	JSR $8E59      ; Relocate cursor
C3/9903:	A936    	LDA #$36       ; C3/9621
C3/9905:	8526    	STA $26        ; Next: Option list
C3/9907:	60      	RTS

Fork: Handle L and R, prepare for menu reset
C3/9908:	A97F    	LDA #$7F       ; C3/1BF3
C3/990A:	85E0    	STA $E0        ; Set init command
C3/990C:	4C2220  	JMP $2022      ; Handle L and R

57: Handle gear browsing
C3/990F:	20D39A  	JSR $9AD3      ; Handle navigation
C3/9912:	203392  	JSR $9233      ; Draw stat preview
C3/9915:	A508    	LDA $08        ; No-autofire keys
C3/9917:	8980    	BIT #$80       ; Pushing A?
C3/9919:	F029    	BEQ $9944      ; Branch if not
C3/991B:	20429A  	JSR $9A42      ; On a gray item?
C3/991E:	904E    	BCC $996E      ; Fail if so
C3/9920:	20B20E  	JSR $0EB2      ; Sound: Click
C3/9923:	B91F00  	LDA $001F,Y    ; Item to unequip
C3/9926:	C9FF    	CMP #$FF       ; None?
C3/9928:	F003    	BEQ $992D      ; Branch if so
C3/992A:	205E9D  	JSR $9D5E      ; Put in stock
C3/992D:	7B      	TDC            ; Clear A
C3/992E:	A54B    	LDA $4B        ; Gear list slot
C3/9930:	AA      	TAX            ; Index it
C3/9931:	BF8A9D7E	LDA $7E9D8A,X  ; Inventory slot
C3/9935:	AA      	TAX            ; Index it
C3/9936:	BD6918  	LDA $1869,X    ; Item in slot
C3/9939:	991F00  	STA $001F,Y    ; Equip on actor
C3/993C:	20979D  	JSR $9D97      ; Adjust stock
C3/993F:	201B91  	JSR $911B      ; Redo text, status
C3/9942:	8009    	BRA $994D      ; Exit gear list

Fork: Handle B
C3/9944:	A509    	LDA $09        ; No-autofire keys
C3/9946:	8980    	BIT #$80       ; Pushing B?
C3/9948:	F023    	BEQ $996D      ; Exit if not
C3/994A:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/994D:	20879C  	JSR $9C87      ; Clear stat preview
C3/9950:	C220    	REP #$20       ; 16-bit A
C3/9952:	A90001  	LDA #$0100     ; BG1 H-Shift: 256
C3/9955:	8FD09B7E	STA $7E9BD0    ; Hide gear list
C3/9959:	E220    	SEP #$20       ; 8-bit A
C3/995B:	A9C1    	LDA #$C1       ; Top cursor: Off
C3/995D:	1446    	TRB $46        ; Scrollbar: Off
C3/995F:	206C8E  	JSR $8E6C      ; Load navig data
C3/9962:	A55F    	LDA $5F        ; Former position
C3/9964:	854E    	STA $4E        ; Set cursor row
C3/9966:	20758E  	JSR $8E75      ; Relocate cursor
C3/9969:	A955    	LDA #$55       ; C3/9884
C3/996B:	8526    	STA $26        ; Next: Body parts
C3/996D:	60      	RTS

Fork: Invalid selection
C3/996E:	20C00E  	JSR $0EC0      ; Play buzzer
C3/9971:	205D30  	JSR $305D      ; Pixelate screen
C3/9974:	60      	RTS

Draw "R-hand" and "L-hand" in Equip menu
C3/9975:	ADD811  	LDA $11D8      ; Gear effects
C3/9978:	2908    	AND #$08       ; Gauntlet?
C3/997A:	F013    	BEQ $998F      ; Branch if not
C3/997C:	20F293  	JSR $93F2      ; Define Y
C3/997F:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/9982:	C9FF    	CMP #$FF       ; None?
C3/9984:	F020    	BEQ $99A6      ; Branch if so
C3/9986:	B92000  	LDA $0020,Y    ; L-Hand item
C3/9989:	C9FF    	CMP #$FF       ; None?
C3/998B:	F03D    	BEQ $99CA      ; Branch if so
C3/998D:	8000    	BRA $998F      ; ...

Fork: Draw both hands in blue
C3/998F:	A92C    	LDA #$2C       ; Palette 3
C3/9991:	8529    	STA $29        ; Color: Blue
C3/9993:	209899  	JSR $9998      ; Draw "R-hand"
C3/9996:	8007    	BRA $999F      ; Draw "L-hand"

Sub: Draw "R-hand"
C3/9998:	A0BAA2  	LDY #$A2BA     ; Text pointer
C3/999B:	20F902  	JSR $02F9      ; Draw "R-hand"
C3/999E:	60      	RTS

Sub: Draw "L-hand"
C3/999F:	A0C3A2  	LDY #$A2C3     ; Text pointer
C3/99A2:	20F902  	JSR $02F9      ; Draw "L-hand"
C3/99A5:	60      	RTS

Fork: Check if L-Hand also empty
C3/99A6:	B92000  	LDA $0020,Y    ; L-Hand item
C3/99A9:	C9FF    	CMP #$FF       ; None?
C3/99AB:	D002    	BNE $99AF      ; Branch if not
C3/99AD:	80E0    	BRA $998F      ; Draw both in blue

Fork: Check if two-handed weapon in L-Hand
C3/99AF:	202183  	JSR $8321      ; Compute index
C3/99B2:	AE3421  	LDX $2134      ; Load it
C3/99B5:	BF1350D8	LDA $D85013,X  ; Properties
C3/99B9:	2940    	AND #$40       ; 2-hand OK?
C3/99BB:	F0D2    	BEQ $998F      ; Blue x2 if not
C3/99BD:	A924    	LDA #$24       ; Palette 1
C3/99BF:	8529    	STA $29        ; Color: Gray
C3/99C1:	209899  	JSR $9998      ; Draw "R-hand"
C3/99C4:	A92C    	LDA #$2C       ; Palette 3
C3/99C6:	8529    	STA $29        ; Color: Blue
C3/99C8:	80D5    	BRA $999F      ; Draw "L-hand"

Fork: Check if two-handed weapon in R-Hand
C3/99CA:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/99CD:	202183  	JSR $8321      ; Compute index
C3/99D0:	AE3421  	LDX $2134      ; Load it
C3/99D3:	BF1350D8	LDA $D85013,X  ; Properties
C3/99D7:	2940    	AND #$40       ; 2-hand OK?
C3/99D9:	F0B4    	BEQ $998F      ; Blue x2 if not
C3/99DB:	A92C    	LDA #$2C       ; Palette 3
C3/99DD:	8529    	STA $29        ; Color: Blue
C3/99DF:	209899  	JSR $9998      ; Draw "R-hand"
C3/99E2:	A924    	LDA #$24       ; Palette 1
C3/99E4:	8529    	STA $29        ; Color: Gray
C3/99E6:	80B7    	BRA $999F      ; Draw "L-hand"

Define Bat.Pwr mode (normal, doubled, or combined hands)
C3/99E8:	64CD    	STZ $CD        ; Genji mode off
C3/99EA:	ADD811  	LDA $11D8      ; Gear effects
C3/99ED:	2910    	AND #$10       ; Genji Glove?
C3/99EF:	F002    	BEQ $99F3      ; Branch if not
C3/99F1:	E6CD    	INC $CD        ; Pwr: Merge hands
C3/99F3:	64A1    	STZ $A1        ; Power x2: Off
C3/99F5:	ADD811  	LDA $11D8      ; Gear effects
C3/99F8:	2908    	AND #$08       ; Gauntlet?
C3/99FA:	F010    	BEQ $9A0C      ; Exit if not
C3/99FC:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/99FF:	C9FF    	CMP #$FF       ; None?
C3/9A01:	F00B    	BEQ $9A0E      ; Branch if so
C3/9A03:	B92000  	LDA $0020,Y    ; L-Hand item
C3/9A06:	C9FF    	CMP #$FF       ; None?
C3/9A08:	F021    	BEQ $9A2B      ; Branch if so
C3/9A0A:	8000    	BRA $9A0C      ; ...
C3/9A0C:	38      	SEC            ; ...
C3/9A0D:	60      	RTS

Fork: Check if L-Hand also empty
C3/9A0E:	B92000  	LDA $0020,Y    ; L-Hand item
C3/9A11:	C9FF    	CMP #$FF       ; None?
C3/9A13:	D002    	BNE $9A17      ; Branch if not
C3/9A15:	80F5    	BRA $9A0C      ; Exit

Fork: Check if two-handed weapon in L-Hand
C3/9A17:	202183  	JSR $8321      ; Compute index
C3/9A1A:	AE3421  	LDX $2134      ; Load it
C3/9A1D:	BF1350D8	LDA $D85013,X  ; Properties
C3/9A21:	2940    	AND #$40       ; 2-hand OK?
C3/9A23:	F0E7    	BEQ $9A0C      ; Exit if not
C3/9A25:	18      	CLC            ; ...
C3/9A26:	A901    	LDA #$01       ; Power: x2
C3/9A28:	85A1    	STA $A1        ; Set Pwr mode
C3/9A2A:	60      	RTS

Fork: Check if two-handed weapon in R-Hand
C3/9A2B:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/9A2E:	202183  	JSR $8321      ; Compute index
C3/9A31:	AE3421  	LDX $2134      ; Load it
C3/9A34:	BF1350D8	LDA $D85013,X  ; Properties
C3/9A38:	2940    	AND #$40       ; 2-hand OK?
C3/9A3A:	F0D0    	BEQ $9A0C      ; Exit if not
C3/9A3C:	18      	CLC            ; ...
C3/9A3D:	A901    	LDA #$01       ; Power: x2
C3/9A3F:	85A1    	STA $A1        ; Set Pwr mode
C3/9A41:	60      	RTS

Check if pointing at grayed out gear
C3/9A42:	204A9A  	JSR $9A4A      ; Actor address
C3/9A45:	7B      	TDC            ; Clear A
C3/9A46:	A54B    	LDA $4B        ; Gear list slot
C3/9A48:	800C    	BRA $9A56      ; Analyze item

Load address to selected body slot
C3/9A4A:	20F293  	JSR $93F2      ; Actor's address
C3/9A4D:	C221    	REP #$21       ; 16-bit A; C-
C3/9A4F:	98      	TYA            ; Move it to A
C3/9A50:	E220    	SEP #$20       ; 8-bit A
C3/9A52:	655F    	ADC $5F        ; Add body slot
C3/9A54:	A8      	TAY            ; Move it to Y
C3/9A55:	60      	RTS

Determine whether gear list entry is disabled
C3/9A56:	5A      	PHY            ; ...
C3/9A57:	AA      	TAX            ; Gear list slot
C3/9A58:	BF8A9D7E	LDA $7E9D8A,X  ; Inventory slot
C3/9A5C:	AA      	TAX            ; Index it
C3/9A5D:	BD6918  	LDA $1869,X    ; Item in slot
C3/9A60:	202183  	JSR $8321      ; Compute index
C3/9A63:	AE3421  	LDX $2134      ; Load it
C3/9A66:	BF0050D8	LDA $D85000,X  ; Properties
C3/9A6A:	2907    	AND #$07       ; Get class
C3/9A6C:	85F6    	STA $F6        ; Memorize it
C3/9A6E:	7A      	PLY            ; ...
C3/9A6F:	A55F    	LDA $5F        ; Body slot
C3/9A71:	C902    	CMP #$02       ; Head or body?
C3/9A73:	B05A    	BCS $9ACF      ; Enable if so
C3/9A75:	C901    	CMP #$01       ; L-Hand/relic 2?
C3/9A77:	F02C    	BEQ $9AA5      ; Branch if so

Fork: For R-Hand or relic 1
C3/9A79:	B92000  	LDA $0020,Y    ; L-Hand item
C3/9A7C:	C9FF    	CMP #$FF       ; None?
C3/9A7E:	F017    	BEQ $9A97      ; Enable if so
C3/9A80:	202183  	JSR $8321      ; Compute index
C3/9A83:	AE3421  	LDX $2134      ; Load it
C3/9A86:	BF0050D8	LDA $D85000,X  ; Properties
C3/9A8A:	2907    	AND #$07       ; Get class
C3/9A8C:	C903    	CMP #$03       ; Shield?
C3/9A8E:	F009    	BEQ $9A99      ; Branch if so
C3/9A90:	ADD811  	LDA $11D8      ; Gear effects
C3/9A93:	2910    	AND #$10       ; Genji Glove?
C3/9A95:	F002    	BEQ $9A99      ; Branch if not
C3/9A97:	38      	SEC            ; Set to enable
C3/9A98:	60      	RTS

Fork: Prevent two shields or weapons
C3/9A99:	BF0050D8	LDA $D85000,X  ; L-Hand's specs
C3/9A9D:	2907    	AND #$07       ; Get item class
C3/9A9F:	C5F6    	CMP $F6        ; Like list item?
C3/9AA1:	F02E    	BEQ $9AD1      ; Disable if so
C3/9AA3:	38      	SEC            ; Set to enable
C3/9AA4:	60      	RTS

Fork: For L-Hand or relic 2
C3/9AA5:	B91E00  	LDA $001E,Y    ; R-Hand item
C3/9AA8:	C9FF    	CMP #$FF       ; None?
C3/9AAA:	F017    	BEQ $9AC3      ; Enable if so
C3/9AAC:	202183  	JSR $8321      ; Compute index
C3/9AAF:	AE3421  	LDX $2134      ; Load it
C3/9AB2:	BF0050D8	LDA $D85000,X  ; Properties
C3/9AB6:	2907    	AND #$07       ; Get class
C3/9AB8:	C903    	CMP #$03       ; Shield?
C3/9ABA:	F009    	BEQ $9AC5      ; Branch if so
C3/9ABC:	ADD811  	LDA $11D8      ; Gear effects
C3/9ABF:	2910    	AND #$10       ; Genji Glove?
C3/9AC1:	F002    	BEQ $9AC5      ; Branch if not
C3/9AC3:	38      	SEC            ; Set to enable
C3/9AC4:	60      	RTS

Fork: Prevent two shields or weapons
C3/9AC5:	BF0050D8	LDA $D85000,X  ; R-Hand's specs
C3/9AC9:	2907    	AND #$07       ; Get item class
C3/9ACB:	C5F6    	CMP $F6        ; Like list item?
C3/9ACD:	F002    	BEQ $9AD1      ; Disable if so
C3/9ACF:	38      	SEC            ; Set to enable
C3/9AD0:	60      	RTS

Fork: Disable listed item
C3/9AD1:	18      	CLC            ; Set to disable
C3/9AD2:	60      	RTS

Handle D-Pad plus L and R for gear browsing
C3/9AD3:	AF899D7E	LDA $7E9D89    ; List size
C3/9AD7:	C90A    	CMP #$0A       ; Over 9 items?
C3/9AD9:	B003    	BCS $9ADE      ; Branch if so
C3/9ADB:	4C9D8E  	JMP $8E9D      ; Handle D-Pad

Fork: Scrollable list
C3/9ADE:	A905    	LDA #$05       ; List type: Gear
C3/9AE0:	852A    	STA $2A        ; Set redraw mode
C3/9AE2:	20641F  	JSR $1F64      ; Handle L and R
C3/9AE5:	B003    	BCS $9AEA      ; Exit if pushed
C3/9AE7:	4C8E8E  	JMP $8E8E      ; Handle D-Pad
C3/9AEA:	60      	RTS

Initialize cursor data for list of available gear
C3/9AEB:	AF899D7E	LDA $7E9D89    ; Number of items
C3/9AEF:	F01B    	BEQ $9B0C      ; Exit if none
C3/9AF1:	C90A    	CMP #$0A       ; Over 9?
C3/9AF3:	B011    	BCS $9B06      ; Branch if so
C3/9AF5:	20C49D  	JSR $9DC4      ; Duplicate cursor
C3/9AF8:	644A    	STZ $4A        ; List scroll: 0
C3/9AFA:	20978E  	JSR $8E97      ; Load navig data
C3/9AFD:	AF899D7E	LDA $7E9D89    ; Number of items
C3/9B01:	8554    	STA $54        ; Set cursor limit
C3/9B03:	4CA08E  	JMP $8EA0      ; Relocate cursor

Fork: Scrollable list
C3/9B06:	20C49D  	JSR $9DC4      ; Duplicate cursor
C3/9B09:	200D9B  	JSR $9B0D      ; Move cursor; bar
C3/9B0C:	60      	RTS

Initialize cursor data for scrollable gear list
C3/9B0D:	644A    	STZ $4A        ; List scroll: 0
C3/9B0F:	203309  	JSR $0933      ; Create scrollbar
C3/9B12:	C220    	REP #$20       ; 16-bit A
C3/9B14:	A96000  	LDA #$0060     ; Y: 96
C3/9B17:	9FCA347E	STA $7E34CA,X  ; Set scrollbar's
C3/9B1B:	A90060  	LDA #$6000     ; Bar range: 60 px
C3/9B1E:	8D0442  	STA $4204      ; Set dividend
C3/9B21:	E220    	SEP #$20       ; 8-bit A
C3/9B23:	AF899D7E	LDA $7E9D89    ; Number of items
C3/9B27:	38      	SEC            ; Prepare SBC
C3/9B28:	E909    	SBC #$09       ; Deduct page size
C3/9B2A:	8D0642  	STA $4206      ; Set divisor
C3/9B2D:	EA      	NOP
C3/9B2E:	EA      	NOP
C3/9B2F:	EA      	NOP
C3/9B30:	EA      	NOP
C3/9B31:	EA      	NOP
C3/9B32:	C220    	REP #$20       ; 16-bit A
C3/9B34:	AD1442  	LDA $4214      ; Quotient
C3/9B37:	9F4A357E	STA $7E354A,X  ; Set bar's V-Spd
C3/9B3B:	E220    	SEP #$20       ; 8-bit A
C3/9B3D:	A400    	LDY $00        ; Clear Y
C3/9B3F:	844F    	STY $4F        ; List col/row: 1
C3/9B41:	20888E  	JSR $8E88      ; Load navig data
C3/9B44:	20918E  	JSR $8E91      ; Relocate cursor
C3/9B47:	AF899D7E	LDA $7E9D89    ; Number of items
C3/9B4B:	38      	SEC            ; Prepare SBC
C3/9B4C:	E909    	SBC #$09       ; Deduct page size
C3/9B4E:	855C    	STA $5C        ; Set scroll limit
C3/9B50:	A909    	LDA #$09       ; Onscreen rows: 9
C3/9B52:	855A    	STA $5A        ; Set rows per page
C3/9B54:	A901    	LDA #$01       ; Onscreen cols: 1
C3/9B56:	855B    	STA $5B        ; Set cols per page
C3/9B58:	60      	RTS

Compile compatible gear for actor's body part
C3/9B59:	202A9C  	JSR $9C2A      ; Init list
C3/9B5C:	20419C  	JSR $9C41      ; Define compat
C3/9B5F:	A920    	LDA #$20       ; Palette 0
C3/9B61:	8529    	STA $29        ; Color: User's
C3/9B63:	A54B    	LDA $4B        ; Body part
C3/9B65:	C902    	CMP #$02       ; Head?
C3/9B67:	F049    	BEQ $9BB2      ; Branch if so
C3/9B69:	C903    	CMP #$03       ; Armor?
C3/9B6B:	F002    	BEQ $9B6F      ; Branch if so
C3/9B6D:	8003    	BRA $9B72      ; Handle hands
C3/9B6F:	4CEE9B  	JMP $9BEE      ; Handle torso

Fork: Weapons and shields
C3/9B72:	A600    	LDX $00        ; Clear X...
C3/9B74:	9B      	TXY            ; Item slot: 1
C3/9B75:	7B      	TDC            ; Clear A
C3/9B76:	B96918  	LDA $1869,Y    ; Item in slot
C3/9B79:	C9FF    	CMP #$FF       ; None?
C3/9B7B:	F026    	BEQ $9BA3      ; Skip if so
C3/9B7D:	202183  	JSR $8321      ; Compute index
C3/9B80:	AE3421  	LDX $2134      ; Load it
C3/9B83:	BF0050D8	LDA $D85000,X  ; Properties
C3/9B87:	2907    	AND #$07       ; Get class
C3/9B89:	C901    	CMP #$01       ; Weapon?
C3/9B8B:	F004    	BEQ $9B91      ; Branch if so
C3/9B8D:	C903    	CMP #$03       ; Shield?
C3/9B8F:	D012    	BNE $9BA3      ; Skip if not
C3/9B91:	C220    	REP #$20       ; 16-bit A
C3/9B93:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/9B97:	24E7    	BIT $E7        ; Actor can use?
C3/9B99:	F008    	BEQ $9BA3      ; Skip if not
C3/9B9B:	E220    	SEP #$20       ; 8-bit A
C3/9B9D:	98      	TYA            ; Item slot
C3/9B9E:	8D8021  	STA $2180      ; Add to list
C3/9BA1:	E6E0    	INC $E0        ; List size +1
C3/9BA3:	E220    	SEP #$20       ; 8-bit A
C3/9BA5:	C8      	INY            ; Item slot +1
C3/9BA6:	C0FF00  	CPY #$00FF     ; Done 255?
C3/9BA9:	D0CA    	BNE $9B75      ; Loop if not
C3/9BAB:	A5E0    	LDA $E0        ; List size
C3/9BAD:	8F899D7E	STA $7E9D89    ; Save to list
C3/9BB1:	60      	RTS

Fork: Helmet list
C3/9BB2:	A600    	LDX $00        ; Clear X...
C3/9BB4:	9B      	TXY            ; Item slot: 1
C3/9BB5:	7B      	TDC            ; Clear A
C3/9BB6:	B96918  	LDA $1869,Y    ; Item in slot
C3/9BB9:	C9FF    	CMP #$FF       ; None?
C3/9BBB:	F022    	BEQ $9BDF      ; Skip if so
C3/9BBD:	202183  	JSR $8321      ; Compute index
C3/9BC0:	AE3421  	LDX $2134      ; Load it
C3/9BC3:	BF0050D8	LDA $D85000,X  ; Properties
C3/9BC7:	2907    	AND #$07       ; Get class
C3/9BC9:	C904    	CMP #$04       ; Helmet?
C3/9BCB:	D012    	BNE $9BDF      ; Skip if not
C3/9BCD:	C220    	REP #$20       ; 16-bit A
C3/9BCF:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/9BD3:	24E7    	BIT $E7        ; Actor can use?
C3/9BD5:	F008    	BEQ $9BDF      ; Skip if not
C3/9BD7:	E220    	SEP #$20       ; 8-bit A
C3/9BD9:	98      	TYA            ; Item slot
C3/9BDA:	8D8021  	STA $2180      ; Add to list
C3/9BDD:	E6E0    	INC $E0        ; List size +1
C3/9BDF:	E220    	SEP #$20       ; 8-bit A
C3/9BE1:	C8      	INY            ; Item slot +1
C3/9BE2:	C0FF00  	CPY #$00FF     ; Done 255?
C3/9BE5:	D0CE    	BNE $9BB5      ; Loop if not
C3/9BE7:	A5E0    	LDA $E0        ; List size
C3/9BE9:	8F899D7E	STA $7E9D89    ; Save to list
C3/9BED:	60      	RTS

Fork: Armor list
C3/9BEE:	A600    	LDX $00        ; Clear X...
C3/9BF0:	9B      	TXY            ; Item slot: 1
C3/9BF1:	7B      	TDC            ; Clear A
C3/9BF2:	B96918  	LDA $1869,Y    ; Item in slot
C3/9BF5:	C9FF    	CMP #$FF       ; None?
C3/9BF7:	F022    	BEQ $9C1B      ; Skip if so
C3/9BF9:	202183  	JSR $8321      ; Compute index
C3/9BFC:	AE3421  	LDX $2134      ; Load it
C3/9BFF:	BF0050D8	LDA $D85000,X  ; Properties
C3/9C03:	2907    	AND #$07       ; Get class
C3/9C05:	C902    	CMP #$02       ; Armor?
C3/9C07:	D012    	BNE $9C1B      ; Skip if not
C3/9C09:	C220    	REP #$20       ; 16-bit A
C3/9C0B:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/9C0F:	24E7    	BIT $E7        ; Actor can use?
C3/9C11:	F008    	BEQ $9C1B      ; Skip if not
C3/9C13:	E220    	SEP #$20       ; 8-bit A
C3/9C15:	98      	TYA            ; Item slot
C3/9C16:	8D8021  	STA $2180      ; Add to list
C3/9C19:	E6E0    	INC $E0        ; List size +1
C3/9C1B:	E220    	SEP #$20       ; 8-bit A
C3/9C1D:	C8      	INY            ; Item slot +1
C3/9C1E:	C0FF00  	CPY #$00FF     ; Done 255?
C3/9C21:	D0CE    	BNE $9BF1      ; Loop if not
C3/9C23:	A5E0    	LDA $E0        ; List size
C3/9C25:	8F899D7E	STA $7E9D89    ; Save to list
C3/9C29:	60      	RTS

Initialize list of compatible gear
C3/9C2A:	A600    	LDX $00        ; Index: 0
C3/9C2C:	A9FF    	LDA #$FF       ; Item slot 256
C3/9C2E:	9F8A9D7E	STA $7E9D8A,X  ; Add to list
C3/9C32:	E8      	INX            ; Index +1
C3/9C33:	E00900  	CPX #$0009     ; Done 9 times?
C3/9C36:	D0F6    	BNE $9C2E      ; Loop if not
C3/9C38:	A28A9D  	LDX #$9D8A     ; 7E/9D8A
C3/9C3B:	8E8121  	STX $2181      ; Set WRAM LBs
C3/9C3E:	64E0    	STZ $E0        ; List size: 0
C3/9C40:	60      	RTS

Defaulting to item slot 256, which is unused in the SNES versions, provides a fallback
for Optimum in case the list is empty or contains only banned items such as Cursed Shld.


Define gear compatibility for actor
C3/9C41:	20F293  	JSR $93F2      ; Define Y
C3/9C44:	7B      	TDC            ; ...
C3/9C45:	B90000  	LDA $0000,Y    ; Actor
C3/9C48:	0A      	ASL A          ; Double it
C3/9C49:	AA      	TAX            ; Index it
C3/9C4A:	C220    	REP #$20       ; 16-bit A
C3/9C4C:	BF679CC3	LDA $C39C67,X  ; Compat bit
C3/9C50:	85E7    	STA $E7        ; Memorize it
C3/9C52:	E220    	SEP #$20       ; 8-bit A
C3/9C54:	ADD811  	LDA $11D8      ; Gear effects
C3/9C57:	2920    	AND #$20       ; Merit Award?
C3/9C59:	F00B    	BEQ $9C66      ; Exit if not
C3/9C5B:	C220    	REP #$20       ; 16-bit A
C3/9C5D:	A5E7    	LDA $E7        ; Actor's bit
C3/9C5F:	090080  	ORA #$8000     ; Add award's
C3/9C62:	85E7    	STA $E7        ; Save changes
C3/9C64:	E220    	SEP #$20       ; 8-bit A
C3/9C66:	60      	RTS

Bitfield for actor slots
C3/9C67:	0100    	; Terra
C3/9C69:	0200    	; Locke
C3/9C6B:	0400    	; Cyan
C3/9C6D:	0800    	; Shadow
C3/9C6F:	1000    	; Edgar
C3/9C71:	2000    	; Sabin
C3/9C73:	4000    	; Celes
C3/9C75:	8000    	; Strago
C3/9C77:	0001    	; Relm
C3/9C79:	0002    	; Setzer
C3/9C7B:	0004    	; Mog
C3/9C7D:	0008    	; Gau
C3/9C7F:	0010    	; Gogo
C3/9C81:	0020    	; Umaro
C3/9C83:	0040    	; Guest 1
C3/9C85:	0080    	; Guest 2

Erase projected stats in Equip or Relic menu
C3/9C87:	7B      	TDC            ; Clear A
C3/9C88:	AA      	TAX            ; 1st: Vigor
C3/9C89:	A00900  	LDY #$0009     ; Stats: 9
C3/9C8C:	C220    	REP #$20       ; 16-bit A
C3/9C8E:	9FBF7C7E	STA $7E7CBF,X  ; Clear hundreds
C3/9C92:	E8      	INX            ; Index +1
C3/9C93:	E8      	INX            ; Index +1
C3/9C94:	9FBF7C7E	STA $7E7CBF,X  ; Clear tens
C3/9C98:	E8      	INX            ; Index +1
C3/9C99:	E8      	INX            ; Index +1
C3/9C9A:	9FBF7C7E	STA $7E7CBF,X  ; Clear ones
C3/9C9E:	E8      	INX            ; Index +1
C3/9C9F:	E8      	INX            ; Index +1
C3/9CA0:	8A      	TXA            ; Tilemap ptr
C3/9CA1:	18      	CLC            ; Prepare ADC
C3/9CA2:	697A00  	ADC #$007A     ; Row +2, col -3
C3/9CA5:	AA      	TAX            ; Reindex it
C3/9CA6:	88      	DEY            ; One less stat
C3/9CA7:	D0E5    	BNE $9C8E      ; Loop till last
C3/9CA9:	E220    	SEP #$20       ; 8-bit A
C3/9CAB:	60      	RTS

Draw and reveal list of available gear for body part
C3/9CAC:	AF899D7E	LDA $7E9D89    ; Empty list?
C3/9CB0:	F02B    	BEQ $9CDD      ; Abort if so
C3/9CB2:	20F783  	JSR $83F7      ; Define $E5, $E6
C3/9CB5:	7B      	TDC            ; Clear A
C3/9CB6:	AF899D7E	LDA $7E9D89    ; List size
C3/9CBA:	C909    	CMP #$09       ; Over 8 items?
C3/9CBC:	9002    	BCC $9CC0      ; Branch if not
C3/9CBE:	A909    	LDA #$09       ; Rows left: 9
C3/9CC0:	A8      	TAY            ; Put in Y...
C3/9CC1:	5A      	PHY            ; Memorize it
C3/9CC2:	20E29C  	JSR $9CE2      ; Draw item name
C3/9CC5:	E6E5    	INC $E5        ; List slot +1
C3/9CC7:	A5E6    	LDA $E6        ; BG1 write row
C3/9CC9:	1A      	INC A          ; Go 1 row down
C3/9CCA:	1A      	INC A          ; Go 1 row down
C3/9CCB:	291F    	AND #$1F       ; Stay in limits
C3/9CCD:	85E6    	STA $E6        ; Save changes
C3/9CCF:	7A      	PLY            ; Rows left
C3/9CD0:	88      	DEY            ; One less left
C3/9CD1:	D0EE    	BNE $9CC1      ; Loop till last
C3/9CD3:	C220    	REP #$20       ; 16-bit A
C3/9CD5:	7B      	TDC            ; BG1 H-Shift: 0
C3/9CD6:	8FD09B7E	STA $7E9BD0    ; Unhide gear list
C3/9CDA:	E220    	SEP #$20       ; 8-bit A
C3/9CDC:	60      	RTS            ; Exit
C3/9CDD:	A527    	LDA $27        ; Old menu mode
C3/9CDF:	8526    	STA $26        ; Set as current
C3/9CE1:	60      	RTS

Draw name of item from list of available gear
C3/9CE2:	204A9A  	JSR $9A4A      ; Actor's address
C3/9CE5:	7B      	TDC            ; Clear A
C3/9CE6:	A5E5    	LDA $E5        ; Gear list slot
C3/9CE8:	20569A  	JSR $9A56      ; Gray out item?
C3/9CEB:	B004    	BCS $9CF1      ; Branch if not
C3/9CED:	A928    	LDA #$28       ; Color: Gray
C3/9CEF:	8002    	BRA $9CF3      ; Skip a line
C3/9CF1:	A920    	LDA #$20       ; Color: User's
C3/9CF3:	8529    	STA $29        ; Set palette
C3/9CF5:	A5E6    	LDA $E6        ; BG1 write row
C3/9CF7:	1A      	INC A          ; Go 1 row down
C3/9CF8:	A20200  	LDX #$0002     ; X: 2
C3/9CFB:	209F80  	JSR $809F      ; Compute map ptr
C3/9CFE:	C220    	REP #$20       ; 16-bit A
C3/9D00:	8A      	TXA            ; ...
C3/9D01:	8F899E7E	STA $7E9E89    ; Set position
C3/9D05:	E220    	SEP #$20       ; 8-bit A
C3/9D07:	7B      	TDC            ; Clear A
C3/9D08:	A5E5    	LDA $E5        ; Gear list slot
C3/9D0A:	A8      	TAY            ; Put it in Y
C3/9D0B:	20119D  	JSR $9D11      ; Load item name
C3/9D0E:	4CD97F  	JMP $7FD9      ; Draw item name

Load name of item from list of available gear
C3/9D11:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/9D14:	8E8121  	STX $2181      ; Set WRAM LBs
C3/9D17:	AD1242  	LDA $4212      ; PPU status
C3/9D1A:	2940    	AND #$40       ; H-Blank?
C3/9D1C:	F0F9    	BEQ $9D17      ; Loop if not
C3/9D1E:	BB      	TYX            ; Gear list slot
C3/9D1F:	7B      	TDC            ; ...
C3/9D20:	BF8A9D7E	LDA $7E9D8A,X  ; Inventory slot
C3/9D24:	A8      	TAY            ; Index it
C3/9D25:	B96918  	LDA $1869,Y    ; Item in slot
C3/9D28:	C9FF    	CMP #$FF       ; None?
C3/9D2A:	F023    	BEQ $9D4F      ; Blank if so
C3/9D2C:	8D1B21  	STA $211B      ; Set matrix A LB
C3/9D2F:	9C1B21  	STZ $211B      ; Clear HB
C3/9D32:	A90D    	LDA #$0D       ; Name data size
C3/9D34:	8D1C21  	STA $211C      ; Set matrix B
C3/9D37:	8D1C21  	STA $211C      ; ...
C3/9D3A:	AE3421  	LDX $2134      ; Index product
C3/9D3D:	A00D00  	LDY #$000D     ; Letters: 13
C3/9D40:	BF00B3D2	LDA $D2B300,X  ; Letter
C3/9D44:	8D8021  	STA $2180      ; Add to string
C3/9D47:	E8      	INX            ; Point to next
C3/9D48:	88      	DEY            ; One less left
C3/9D49:	D0F5    	BNE $9D40      ; Loop till last
C3/9D4B:	9C8021  	STZ $2180      ; End string
C3/9D4E:	60      	RTS

Fork: Blank item name
C3/9D4F:	A00D00  	LDY #$000D     ; Spaces: 13
C3/9D52:	A9FF    	LDA #$FF       ; Space char
C3/9D54:	8D8021  	STA $2180      ; Add to string
C3/9D57:	88      	DEY            ; One less left
C3/9D58:	D0FA    	BNE $9D54      ; Loop till last
C3/9D5A:	9C8021  	STZ $2180      ; End string
C3/9D5D:	60      	RTS

Add item to inventory
C3/9D5E:	5A      	PHY            ; Save Y
C3/9D5F:	85E0    	STA $E0        ; Set item to add
C3/9D61:	A400    	LDY $00        ; Item slot: 1
C3/9D63:	D96918  	CMP $1869,Y    ; Slot holds it?
C3/9D66:	F022    	BEQ $9D8A      ; Qty +1 if so
C3/9D68:	C9FF    	CMP #$FF       ; Empty item?
C3/9D6A:	F029    	BEQ $9D95      ; Exit if so
C3/9D6C:	C8      	INY            ; Item slot +1
C3/9D6D:	C00001  	CPY #$0100     ; Done all 256?
C3/9D70:	D0F1    	BNE $9D63      ; Loop if not

Fork: Find an empty slot
C3/9D72:	A400    	LDY $00        ; Item slot: 1
C3/9D74:	B96918  	LDA $1869,Y    ; Item in slot
C3/9D77:	C9FF    	CMP #$FF       ; None?
C3/9D79:	F003    	BEQ $9D7E      ; Replace if so
C3/9D7B:	C8      	INY            ; Item slot +1
C3/9D7C:	80F6    	BRA $9D74      ; Try next slot

Fork: Put item in empty slot
C3/9D7E:	A901    	LDA #$01       ; Quantity: 1
C3/9D80:	996919  	STA $1969,Y    ; Assign to slot
C3/9D83:	A5E0    	LDA $E0        ; Item to add
C3/9D85:	996918  	STA $1869,Y    ; Put in slot
C3/9D88:	800B    	BRA $9D95      ; Exit

Fork: Quantity +1
C3/9D8A:	B96919  	LDA $1969,Y    ; Quantity owned
C3/9D8D:	C963    	CMP #$63       ; 99?
C3/9D8F:	F004    	BEQ $9D95      ; Exit if so
C3/9D91:	1A      	INC A          ; Quantity +1
C3/9D92:	996919  	STA $1969,Y    ; Save changes
C3/9D95:	7A      	PLY            ; Restore Y
C3/9D96:	60      	RTS

Remove item from inventory
C3/9D97:	5A      	PHY            ; Save Y
C3/9D98:	85E0    	STA $E0        ; ...
C3/9D9A:	A400    	LDY $00        ; Item slot: 1
C3/9D9C:	D96918  	CMP $1869,Y    ; Slot holds it?
C3/9D9F:	F008    	BEQ $9DA9      ; Branch if so
C3/9DA1:	C8      	INY            ; Item slot +1
C3/9DA2:	C00001  	CPY #$0100     ; Done all 256?
C3/9DA5:	D0F5    	BNE $9D9C      ; Loop if not
C3/9DA7:	7A      	PLY            ; Restore Y
C3/9DA8:	60      	RTS

Fork: Quantity -1
C3/9DA9:	B96919  	LDA $1969,Y    ; Quantity
C3/9DAC:	C901    	CMP #$01       ; One?
C3/9DAE:	F009    	BEQ $9DB9      ; Delete if so
C3/9DB0:	B96919  	LDA $1969,Y    ; ...
C3/9DB3:	3A      	DEC A          ; Quantity -1
C3/9DB4:	996919  	STA $1969,Y    ; Save changes
C3/9DB7:	8009    	BRA $9DC2      ; Exit

Fork: Clear item slot
C3/9DB9:	7B      	TDC            ; Clear A
C3/9DBA:	996919  	STA $1969,Y    ; Quantity: 0
C3/9DBD:	A9FF    	LDA #$FF       ; Empty item
C3/9DBF:	996918  	STA $1869,Y    ; Put in slot
C3/9DC2:	7A      	PLY            ; Restore Y
C3/9DC3:	60      	RTS

Duplicate cursor before browsing gear
C3/9DC4:	A902    	LDA #$02       ; Min slot: 16
C3/9DC6:	A0DD9D  	LDY #$9DDD     ; C3/9DDD
C3/9DC9:	207311  	JSR $1173      ; Queue OAM fn
C3/9DCC:	C220    	REP #$20       ; 16-bit A
C3/9DCE:	A555    	LDA $55        ; Cursor's X
C3/9DD0:	9FCA337E	STA $7E33CA,X  ; Set dupe's
C3/9DD4:	A557    	LDA $57        ; Cursor's Y
C3/9DD6:	9F4A347E	STA $7E344A,X  ; Set dupe's
C3/9DDA:	E220    	SEP #$20       ; 8-bit A
C3/9DDC:	60      	RTS

Update cursor indicating selected gear slot
C3/9DDD:	AA      	TAX            ; Index mode
C3/9DDE:	7CE19D  	JMP ($9DE1,X)  ; Handle mode

Jump table for the above
C3/9DE1:	E59D    	; Initialize cursor
C3/9DE3:	009E    	; Sustain cursor

Mode 0: Initialize cursor
C3/9DE5:	A62D    	LDX $2D        ; Queue index
C3/9DE7:	A901    	LDA #$01       ; Dupe: Sustain
C3/9DE9:	0446    	TSB $46        ; Set menu flag
C3/9DEB:	C220    	REP #$20       ; 16-bit A
C3/9DED:	A98D08  	LDA #$088D     ; Anim table ptr
C3/9DF0:	9DC932  	STA $32C9,X    ; Set sprite's
C3/9DF3:	E220    	SEP #$20       ; 8-bit A
C3/9DF5:	A9C3    	LDA #$C3       ; Bank: C3
C3/9DF7:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/9DFA:	200612  	JSR $1206      ; Set pose timer
C3/9DFD:	FE4936  	INC $3649,X    ; Mode +1

Mode 1: Sustain cursor
C3/9E00:	A546    	LDA $46        ; Menu flags
C3/9E02:	8901    	BIT #$01       ; Remove dupe?
C3/9E04:	F007    	BEQ $9E0D      ; Delete if so
C3/9E06:	A62D    	LDX $2D        ; Queue index
C3/9E08:	202112  	JSR $1221      ; Define OAM
C3/9E0B:	38      	SEC            ; Set to requeue
C3/9E0C:	60      	RTS            ; Exit
C3/9E0D:	18      	CLC            ; Set to dequeue
C3/9E0E:	60      	RTS

Set to upload text tilemaps for Equip menu
C3/9E0F:	20239E  	JSR $9E23      ; Queue BG3 upload
C3/9E12:	8023    	BRA $9E37      ; Queue BG1 upload

Set to upload text tilemaps for Relic menu
C3/9E14:	20379E  	JSR $9E37      ; Queue BG1 upload
C3/9E17:	AD1E02  	LDA $021E      ; Frame counter
C3/9E1A:	2901    	AND #$01       ; Odd value?
C3/9E1C:	F002    	BEQ $9E20      ; Favor desc if so
C3/9E1E:	8003    	BRA $9E23      ; Queue stats upload
C3/9E20:	4C91A9  	JMP $A991      ; Queue desc upload

Set to upload BG3 tilemaps A and upper B
C3/9E23:	A00040  	LDY #$4000     ; $4000
C3/9E26:	841B    	STY $1B        ; Set VRAM ptr
C3/9E28:	A04978  	LDY #$7849     ; 7E/7849
C3/9E2B:	841D    	STY $1D        ; Set src LBs
C3/9E2D:	A97E    	LDA #$7E       ; Bank: 7E
C3/9E2F:	851F    	STA $1F        ; Set src HB
C3/9E31:	A08008  	LDY #$0880     ; Bytes: 2176
C3/9E34:	8419    	STY $19        ; Set data size
C3/9E36:	60      	RTS

Set to upload BG1 tilemap A
C3/9E37:	A00000  	LDY #$0000     ; $0000
C3/9E3A:	8414    	STY $14        ; Set VRAM ptr
C3/9E3C:	A04938  	LDY #$3849     ; 7E/3849
C3/9E3F:	8416    	STY $16        ; Set src LBs
C3/9E41:	A97E    	LDA #$7E       ; Bank: 7E
C3/9E43:	8518    	STA $18        ; Set src HB
C3/9E45:	A00008  	LDY #$0800     ; Bytes: 2048
C3/9E48:	8412    	STY $12        ; Set data size
C3/9E4A:	60      	RTS

58: Initialize Relic menu
C3/9E4B:	20509E  	JSR $9E50      ; Init variables
C3/9E4E:	801F    	BRA $9E6F      ; Draw menu, etc.

Initialize variables for Relic menu
C3/9E50:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/9E53:	20086A  	JSR $6A08      ; Set Win1 bounds
C3/9E56:	644A    	STZ $4A        ; List scroll: 0
C3/9E58:	6449    	STZ $49        ; Top BG1 WR row: 1
C3/9E5A:	A910    	LDA #$10       ; Reset/Stop desc
C3/9E5C:	0445    	TSB $45        ; Set menu flag
C3/9E5E:	6499    	STZ $99        ; Unmark Reequip
C3/9E60:	20991B  	JSR $1B99      ; Queue desc anim
C3/9E63:	20B694  	JSR $94B6      ; Set to shift text
C3/9E66:	20BD8E  	JSR $8EBD      ; Load navig data
C3/9E69:	20C68E  	JSR $8EC6      ; Relocate cursor
C3/9E6C:	4CB007  	JMP $07B0      ; Queue cursor OAM

Draw Relic menu, memorize original relics, etc.
C3/9E6F:	206A90  	JSR $906A      ; Draw menu, etc.
C3/9E72:	A901    	LDA #$01       ; C3/1D7E
C3/9E74:	8526    	STA $26        ; Next: Fade-in
C3/9E76:	A959    	LDA #$59       ; C3/9EB8
C3/9E78:	8527    	STA $27        ; Queue: Option list
C3/9E7A:	4C4135  	JMP $3541      ; BRT:1 + NMI

79: Swap actor in Relic menu, retain Equip mode
C3/9E7D:	20999E  	JSR $9E99      ; Draw menu, etc.
C3/9E80:	204F96  	JSR $964F      ; Draw blue "EQUIP"
C3/9E83:	20A89E  	JSR $9EA8      ; Cursor & Fade-in
C3/9E86:	A95A    	LDA #$5A       ; C3/9FFD
C3/9E88:	4CB39E  	JMP $9EB3      ; Queue: Slot list

7A: Swap actor in Relic menu, retain Remove mode
C3/9E8B:	20999E  	JSR $9E99      ; Draw menu, etc.
C3/9E8E:	205696  	JSR $9656      ; Draw blue "REMOVE"
C3/9E91:	20A89E  	JSR $9EA8      ; Cursor & Fade-in
C3/9E94:	A95C    	LDA #$5C       ; C3/A10A
C3/9E96:	4CB39E  	JMP $9EB3      ; Queue: Slot list

Reset Relic menu for either of the above
C3/9E99:	20509E  	JSR $9E50      ; Init variables
C3/9E9C:	206A90  	JSR $906A      ; Draw menu, etc.
C3/9E9F:	20379E  	JSR $9E37      ; Queue BG1 upload
C3/9EA2:	20239E  	JSR $9E23      ; Queue BG3 upload
C3/9EA5:	4C1496  	JMP $9614      ; Switch windows

Put cursor on first relic slot, trigger fade-in
C3/9EA8:	20D58E  	JSR $8ED5      ; Load navig data
C3/9EAB:	20DE8E  	JSR $8EDE      ; Relocate cursor
C3/9EAE:	A901    	LDA #$01       ; C3/1D7E
C3/9EB0:	8526    	STA $26        ; Next: Fade-in
C3/9EB2:	60      	RTS

Queue Equip or Remove mode after actor swap in Relic menu
C3/9EB3:	8527    	STA $27        ; Set queued command
C3/9EB5:	4C4135  	JMP $3541      ; BRT:1 + NMI

59: Handle Relic menu options
C3/9EB8:	20239E  	JSR $9E23      ; Queue BG3 upload
C3/9EBB:	200C96  	JSR $960C      ; Switch windows
C3/9EBE:	205C90  	JSR $905C      ; Draw options
C3/9EC1:	20C38E  	JSR $8EC3      ; Handle D-Pad
C3/9EC4:	A508    	LDA $08        ; No-autofire keys
C3/9EC6:	8980    	BIT #$80       ; Pushing A?
C3/9EC8:	F006    	BEQ $9ED0      ; Branch if not
C3/9ECA:	20B20E  	JSR $0EB2      ; Sound: Click
C3/9ECD:	4CCF9F  	JMP $9FCF      ; Handle choice

Fork: Handle B
C3/9ED0:	A509    	LDA $09        ; No-autofire keys
C3/9ED2:	8980    	BIT #$80       ; Pushing B?
C3/9ED4:	F006    	BEQ $9EDC      ; Branch if not
C3/9ED6:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/9ED9:	20EB9E  	JSR $9EEB      ; Handle Reequip

Fork: Handle L and R, prepare for menu reset
C3/9EDC:	20E69E  	JSR $9EE6      ; Plan Reequip pos
C3/9EDF:	A958    	LDA #$58       ; C3/9E4B
C3/9EE1:	85E0    	STA $E0        ; Set init command
C3/9EE3:	4C2220  	JMP $2022      ; Handle L and R

Memorize menu mode for positioning Reequip warning
C3/9EE6:	A526    	LDA $26        ; Menu mode
C3/9EE8:	85D1    	STA $D1        ; Save for Reequip
C3/9EEA:	60      	RTS

Test Reequip activation, select menu commands accordingly
C3/9EEB:	201091  	JSR $9110      ; Get gear effects
C3/9EEE:	20F293  	JSR $93F2      ; Define Y
C3/9EF1:	B90000  	LDA $0000,Y    ; Actor
C3/9EF4:	C90D    	CMP #$0D       ; Umaro?
C3/9EF6:	F007    	BEQ $9EFF      ; Branch if so
C3/9EF8:	205C9F  	JSR $9F5C      ; Test Reequip
C3/9EFB:	A599    	LDA $99        ; Triggered it?
C3/9EFD:	D007    	BNE $9F06      ; Branch if so
C3/9EFF:	A904    	LDA #$04       ; C3/1A8A
C3/9F01:	8527    	STA $27        ; Queue main menu
C3/9F03:	6426    	STZ $26        ; Next: Fade-out
C3/9F05:	60      	RTS

Fork: Triggered Reequip
C3/9F06:	A906    	LDA #$06       ; Main cursor: Off
C3/9F08:	1446    	TRB $46        ; Set menu flag
C3/9F0A:	20379E  	JSR $9E37      ; Queue BG1 upload
C3/9F0D:	20239E  	JSR $9E23      ; Queue BG3 upload
C3/9F10:	201C9F  	JSR $9F1C      ; Handle text, etc.
C3/9F13:	A9F0    	LDA #$F0       ; Frames: 240
C3/9F15:	8522    	STA $22        ; Set fade delay
C3/9F17:	A96C    	LDA #$6C       ; C3/9FB1
C3/9F19:	8526    	STA $26        ; Next: Late fade
C3/9F1B:	60      	RTS

Handle Reequip activation
C3/9F1C:	205D96  	JSR $965D      ; Erase top text
C3/9F1F:	A00FA4  	LDY #$A40F     ; Text pointer
C3/9F22:	20F902  	JSR $02F9      ; Draw warning
C3/9F25:	AD4E1D  	LDA $1D4E      ; Game options
C3/9F28:	2910    	AND #$10       ; Optimum mode?
C3/9F2A:	F018    	BEQ $9F44      ; Branch if so

Fork: Empty mode
C3/9F2C:	A96E    	LDA #$6E       ; C3/1C26
C3/9F2E:	8527    	STA $27        ; Queue removal
C3/9F30:	A5D1    	LDA $D1        ; Menu mode
C3/9F32:	C959    	CMP #$59       ; Relic options?
C3/9F34:	F007    	BEQ $9F3D      ; Branch if so
C3/9F36:	A0FDA3  	LDY #$A3FD     ; Text pointer
C3/9F39:	20F902  	JSR $02F9      ; Draw "Empty"
C3/9F3C:	60      	RTS

Fork: Draw "Empty" in option window
C3/9F3D:	A0EBA3  	LDY #$A3EB     ; Text pointer
C3/9F40:	20F902  	JSR $02F9      ; Draw "Empty"
C3/9F43:	60      	RTS

Fork: Optimum mode
C3/9F44:	A96D    	LDA #$6D       ; C3/1C1A
C3/9F46:	8527    	STA $27        ; Queue optimizing
C3/9F48:	A5D1    	LDA $D1        ; Menu mode
C3/9F4A:	C959    	CMP #$59       ; Relic options?
C3/9F4C:	F007    	BEQ $9F55      ; Branch if so
C3/9F4E:	A005A4  	LDY #$A405     ; Text pointer
C3/9F51:	20F902  	JSR $02F9      ; Draw "Optimum"
C3/9F54:	60      	RTS

Fork: Draw "Optimum" in option window
C3/9F55:	A0F3A3  	LDY #$A3F3     ; Text pointer
C3/9F58:	20F902  	JSR $02F9      ; Draw "Optimum"
C3/9F5B:	60      	RTS

Determine whether to trigger Reequip in Relic menu
C3/9F5C:	20F293  	JSR $93F2      ; Define Y...
C3/9F5F:	B92300  	LDA $0023,Y    ; Relic 1
C3/9F62:	C5B0    	CMP $B0        ; Unchanged?
C3/9F64:	D009    	BNE $9F6F      ; Branch if not
C3/9F66:	B92400  	LDA $0024,Y    ; Relic 2
C3/9F69:	C5B1    	CMP $B1        ; Unchanged?
C3/9F6B:	D002    	BNE $9F6F      ; Branch if not
C3/9F6D:	803A    	BRA $9FA9      ; Reequip: No

Fork: Compare old and new relics
C3/9F6F:	A5B0    	LDA $B0        ; Old relic 1
C3/9F71:	C9D1    	CMP #$D1       ; Genji Glove?
C3/9F73:	F037    	BEQ $9FAC      ; Trigger if so
C3/9F75:	C9D0    	CMP #$D0       ; Gauntlet?
C3/9F77:	F033    	BEQ $9FAC      ; Trigger if so
C3/9F79:	C9DA    	CMP #$DA       ; Merit Award?
C3/9F7B:	F02F    	BEQ $9FAC      ; Trigger if so
C3/9F7D:	A5B1    	LDA $B1        ; Old relic 2
C3/9F7F:	C9D1    	CMP #$D1       ; Genji Glove?
C3/9F81:	F029    	BEQ $9FAC      ; Trigger if so
C3/9F83:	C9D0    	CMP #$D0       ; Gauntlet?
C3/9F85:	F025    	BEQ $9FAC      ; Trigger if so
C3/9F87:	C9DA    	CMP #$DA       ; Merit Award?
C3/9F89:	F021    	BEQ $9FAC      ; Trigger if so
C3/9F8B:	B92300  	LDA $0023,Y    ; Relic 1
C3/9F8E:	C9D1    	CMP #$D1       ; Genji Glove?
C3/9F90:	F01A    	BEQ $9FAC      ; Trigger if so
C3/9F92:	C9D0    	CMP #$D0       ; Gauntlet?
C3/9F94:	F016    	BEQ $9FAC      ; Trigger if so
C3/9F96:	C9DA    	CMP #$DA       ; Merit Award?
C3/9F98:	F012    	BEQ $9FAC      ; Trigger if so
C3/9F9A:	B92400  	LDA $0024,Y    ; Relic 2
C3/9F9D:	C9D1    	CMP #$D1       ; Genji Glove?
C3/9F9F:	F00B    	BEQ $9FAC      ; Trigger if so
C3/9FA1:	C9D0    	CMP #$D0       ; Gauntlet?
C3/9FA3:	F007    	BEQ $9FAC      ; Trigger if so
C3/9FA5:	C9DA    	CMP #$DA       ; Merit Award?
C3/9FA7:	F003    	BEQ $9FAC      ; Trigger if so
C3/9FA9:	6499    	STZ $99        ; Reequip: No
C3/9FAB:	60      	RTS

Fork: Set to open Equip menu
C3/9FAC:	A901    	LDA #$01       ; Reequip: Yes
C3/9FAE:	8599    	STA $99        ; Set indicator
C3/9FB0:	60      	RTS

6C: Handle delayed fade-out for Reequip
C3/9FB1:	A522    	LDA $22        ; Delay expired?
C3/9FB3:	D003    	BNE $9FB8      ; Branch if not
C3/9FB5:	6426    	STZ $26        ; Next: Fade-out
C3/9FB7:	60      	RTS            ; Exit
C3/9FB8:	C622    	DEC $22        ; Timer -1
C3/9FBA:	A508    	LDA $08        ; No-autofire keys
C3/9FBC:	8910    	BIT #$10       ; Pushing R?
C3/9FBE:	D00C    	BNE $9FCC      ; Fade if so
C3/9FC0:	A508    	LDA $08        ; ...
C3/9FC2:	8920    	BIT #$20       ; Pushing L?
C3/9FC4:	D006    	BNE $9FCC      ; Fade if so
C3/9FC6:	A509    	LDA $09        ; No-autofire keys
C3/9FC8:	8980    	BIT #$80       ; Pushing B?
C3/9FCA:	F002    	BEQ $9FCE      ; Exit if not
C3/9FCC:	6426    	STZ $26        ; Next: Fade-out
C3/9FCE:	60      	RTS

Handle selected option in Relic menu
C3/9FCF:	7B      	TDC            ; Clear A
C3/9FD0:	A54B    	LDA $4B        ; Cursor slot
C3/9FD2:	0A      	ASL A          ; Double it
C3/9FD3:	AA      	TAX            ; Index it
C3/9FD4:	7CD79F  	JMP ($9FD7,X)  ; Handle option

Jump table for the above
C3/9FD7:	DB9F    	; EQUIP
C3/9FD9:	EC9F    	; REMOVE

Handle "EQUIP" selection in Relic menu
C3/9FDB:	201496  	JSR $9614      ; Switch windows
C3/9FDE:	204F96  	JSR $964F      ; Draw blue "EQUIP"
C3/9FE1:	20D58E  	JSR $8ED5      ; Load navig data
C3/9FE4:	20DE8E  	JSR $8EDE      ; Relocate cursor
C3/9FE7:	A95A    	LDA #$5A       ; C3/9FFD
C3/9FE9:	8526    	STA $26        ; Next: Slot list
C3/9FEB:	60      	RTS

Handle "REMOVE" selection in Relic menu
C3/9FEC:	201496  	JSR $9614      ; Switch windows
C3/9FEF:	205696  	JSR $9656      ; Draw blue "REMOVE"
C3/9FF2:	20D58E  	JSR $8ED5      ; Load navig data
C3/9FF5:	20DE8E  	JSR $8EDE      ; Relocate cursor
C3/9FF8:	A95C    	LDA #$5C       ; C3/A10A
C3/9FFA:	8526    	STA $26        ; Next: Slot list
C3/9FFC:	60      	RTS

5A: Handle selection of relic slot to fill
C3/9FFD:	20149E  	JSR $9E14      ; Queue text upload
C3/A000:	20DB8E  	JSR $8EDB      ; Handle D-Pad
C3/A003:	A508    	LDA $08        ; No-autofire keys
C3/A005:	8980    	BIT #$80       ; Pushing A?
C3/A007:	F02A    	BEQ $A033      ; Branch if not
C3/A009:	20B20E  	JSR $0EB2      ; Sound: Click
C3/A00C:	A54E    	LDA $4E        ; Cursor row
C3/A00E:	855F    	STA $5F        ; Set body slot
C3/A010:	A95B    	LDA #$5B       ; C3/A097
C3/A012:	8526    	STA $26        ; Next: Relic list
C3/A014:	2051A0  	JSR $A051      ; Get valid items
C3/A017:	2050A1  	JSR $A150      ; Sort by Defense
C3/A01A:	20EB9A  	JSR $9AEB      ; Cursor & Scrollbar
C3/A01D:	A95A    	LDA #$5A       ; Return here if..
C3/A01F:	8527    	STA $27        ; ..list is empty
C3/A021:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/A024:	206813  	JSR $1368      ; Refresh screen
C3/A027:	20AC9C  	JSR $9CAC      ; Draw item list
C3/A02A:	203392  	JSR $9233      ; Draw stat preview
C3/A02D:	20239E  	JSR $9E23      ; Queue BG3 upload
C3/A030:	4C6813  	JMP $1368      ; Refresh screen

Fork: Handle B
C3/A033:	A509    	LDA $09        ; No-autofire keys
C3/A035:	8980    	BIT #$80       ; Pushing B?
C3/A037:	F00E    	BEQ $A047      ; Branch if not
C3/A039:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/A03C:	20BD8E  	JSR $8EBD      ; Load navig data
C3/A03F:	20C68E  	JSR $8EC6      ; Relocate cursor
C3/A042:	A959    	LDA #$59       ; C3/9EB8
C3/A044:	8526    	STA $26        ; Next: Option list
C3/A046:	60      	RTS

Fork: Handle L and R, prepare for menu reset
C3/A047:	20E69E  	JSR $9EE6      ; Plan Reequip pos
C3/A04A:	A979    	LDA #$79       ; C3/9E7D
C3/A04C:	85E0    	STA $E0        ; Set init command
C3/A04E:	4C2220  	JMP $2022      ; Handle L and R

Compile compatible relics
C3/A051:	202A9C  	JSR $9C2A      ; Init list
C3/A054:	20419C  	JSR $9C41      ; Define compat
C3/A057:	A920    	LDA #$20       ; Palette 0
C3/A059:	8529    	STA $29        ; Color: User's
C3/A05B:	A600    	LDX $00        ; Clear X...
C3/A05D:	9B      	TXY            ; Item slot: 1
C3/A05E:	7B      	TDC            ; Clear A
C3/A05F:	B96918  	LDA $1869,Y    ; Item in slot
C3/A062:	C9FF    	CMP #$FF       ; None?
C3/A064:	F022    	BEQ $A088      ; Skip if so
C3/A066:	202183  	JSR $8321      ; Compute index
C3/A069:	AE3421  	LDX $2134      ; Load it
C3/A06C:	BF0050D8	LDA $D85000,X  ; Properties
C3/A070:	2907    	AND #$07       ; Get class
C3/A072:	C905    	CMP #$05       ; Relic?
C3/A074:	D012    	BNE $A088      ; Skip if not
C3/A076:	C220    	REP #$20       ; 16-bit A
C3/A078:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/A07C:	24E7    	BIT $E7        ; Actor can use?
C3/A07E:	F008    	BEQ $A088      ; Skip if not
C3/A080:	E220    	SEP #$20       ; 8-bit A
C3/A082:	98      	TYA            ; Item slot
C3/A083:	8D8021  	STA $2180      ; Add to list
C3/A086:	E6E0    	INC $E0        ; List size +1
C3/A088:	E220    	SEP #$20       ; 8-bit A
C3/A08A:	C8      	INY            ; Item slot +1
C3/A08B:	C00001  	CPY #$0100     ; Done all 256?
C3/A08E:	D0CE    	BNE $A05E      ; Loop if not
C3/A090:	A5E0    	LDA $E0        ; List size
C3/A092:	8F899D7E	STA $7E9D89    ; Save to list
C3/A096:	60      	RTS

5B: Handle relic browsing
C3/A097:	A910    	LDA #$10       ; Description: On
C3/A099:	1445    	TRB $45        ; Set menu flag
C3/A09B:	20149E  	JSR $9E14      ; Queue text upload
C3/A09E:	20D39A  	JSR $9AD3      ; Handle navigation
C3/A0A1:	203392  	JSR $9233      ; Draw stat preview
C3/A0A4:	20D8A1  	JSR $A1D8      ; Load description

Fork: Handle A
C3/A0A7:	A508    	LDA $08        ; No-autofire keys
C3/A0A9:	8980    	BIT #$80       ; Pushing A?
C3/A0AB:	F02F    	BEQ $A0DC      ; Branch if not
C3/A0AD:	20B20E  	JSR $0EB2      ; Sound: Click
C3/A0B0:	20F293  	JSR $93F2      ; Actor's address
C3/A0B3:	C221    	REP #$21       ; 16-bit A; C-
C3/A0B5:	98      	TYA            ; Move it to A
C3/A0B6:	E220    	SEP #$20       ; 8-bit A
C3/A0B8:	655F    	ADC $5F        ; Add relic slot
C3/A0BA:	A8      	TAY            ; Index sum
C3/A0BB:	B92300  	LDA $0023,Y    ; Relic to unequip
C3/A0BE:	C9FF    	CMP #$FF       ; None?
C3/A0C0:	F003    	BEQ $A0C5      ; Branch if so
C3/A0C2:	205E9D  	JSR $9D5E      ; Put in stock
C3/A0C5:	7B      	TDC            ; Clear A
C3/A0C6:	A54B    	LDA $4B        ; Gear list slot
C3/A0C8:	AA      	TAX            ; Index it
C3/A0C9:	BF8A9D7E	LDA $7E9D8A,X  ; Inventory slot
C3/A0CD:	AA      	TAX            ; Index it
C3/A0CE:	BD6918  	LDA $1869,X    ; Selected item
C3/A0D1:	992300  	STA $0023,Y    ; Equip on actor
C3/A0D4:	20979D  	JSR $9D97      ; Reduce stock
C3/A0D7:	203191  	JSR $9131      ; Draw info; status
C3/A0DA:	8009    	BRA $A0E5      ; Exit list

Fork: Handle B
C3/A0DC:	A509    	LDA $09        ; No-autofire keys
C3/A0DE:	8980    	BIT #$80       ; Pushing B?
C3/A0E0:	F027    	BEQ $A109      ; Exit if not
C3/A0E2:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/A0E5:	A910    	LDA #$10       ; Reset/Stop desc
C3/A0E7:	0445    	TSB $45        ; Set menu flag
C3/A0E9:	20879C  	JSR $9C87      ; Clear stat preview
C3/A0EC:	C220    	REP #$20       ; 16-bit A
C3/A0EE:	A90001  	LDA #$0100     ; BG1 H-Shift: 256
C3/A0F1:	8FD09B7E	STA $7E9BD0    ; Hide gear list
C3/A0F5:	E220    	SEP #$20       ; 8-bit A
C3/A0F7:	A9C1    	LDA #$C1       ; Top cursor: Off
C3/A0F9:	1446    	TRB $46        ; Scrollbar: Off
C3/A0FB:	20D58E  	JSR $8ED5      ; Load navig data
C3/A0FE:	A55F    	LDA $5F        ; Former position
C3/A100:	854E    	STA $4E        ; Set cursor row
C3/A102:	20DE8E  	JSR $8EDE      ; Relocate cursor
C3/A105:	A95A    	LDA #$5A       ; C3/9FFD
C3/A107:	8526    	STA $26        ; Next: Slot list
C3/A109:	60      	RTS

5C: Handle relic removal
C3/A10A:	20239E  	JSR $9E23      ; Queue BG3 upload
C3/A10D:	20DB8E  	JSR $8EDB      ; Handle D-Pad
C3/A110:	A508    	LDA $08        ; No-autofire keys
C3/A112:	8980    	BIT #$80       ; Pushing A?
C3/A114:	F01C    	BEQ $A132      ; Branch if not
C3/A116:	20B20E  	JSR $0EB2      ; Sound: Click
C3/A119:	20F293  	JSR $93F2      ; Actor's address
C3/A11C:	C221    	REP #$21       ; 16-bit A; C-
C3/A11E:	98      	TYA            ; Move it to A
C3/A11F:	E220    	SEP #$20       ; 8-bit A
C3/A121:	654B    	ADC $4B        ; Add cursor slot
C3/A123:	A8      	TAY            ; Index sum
C3/A124:	B92300  	LDA $0023,Y    ; Relic worn
C3/A127:	205E9D  	JSR $9D5E      ; Put in stock
C3/A12A:	A9FF    	LDA #$FF       ; Empty item
C3/A12C:	992300  	STA $0023,Y    ; Clear relic worn
C3/A12F:	203191  	JSR $9131      ; Draw info; status

Fork: Handle B
C3/A132:	A509    	LDA $09        ; No-autofire keys
C3/A134:	8980    	BIT #$80       ; Pushing B?
C3/A136:	F00E    	BEQ $A146      ; Branch if not
C3/A138:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/A13B:	20BD8E  	JSR $8EBD      ; Load navig data
C3/A13E:	20C68E  	JSR $8EC6      ; Relocate cursor
C3/A141:	A959    	LDA #$59       ; C3/9EB8
C3/A143:	8526    	STA $26        ; Next: Option list
C3/A145:	60      	RTS

Fork: Handle L and R, prepare for menu reset
C3/A146:	20E69E  	JSR $9EE6      ; Plan Reequip pos
C3/A149:	A97A    	LDA #$7A       ; C3/9E8B
C3/A14B:	85E0    	STA $E0        ; Set init command
C3/A14D:	4C2220  	JMP $2022      ; Handle L and R

Sort compatible gear by power after loading power ratings
C3/A150:	A28DAC  	LDX #$AC8D     ; 7E/AC8D
C3/A153:	8E8121  	STX $2181      ; Set WRAM LBs
C3/A156:	AF899D7E	LDA $7E9D89    ; List size
C3/A15A:	F02A    	BEQ $A186      ; Exit if 0
C3/A15C:	C901    	CMP #$01       ; One item?
C3/A15E:	F026    	BEQ $A186      ; Exit if so
C3/A160:	85E7    	STA $E7        ; Memorize it
C3/A162:	64E8    	STZ $E8        ; Clear HB
C3/A164:	7B      	TDC            ; Clear A
C3/A165:	AA      	TAX            ; Gear slot: 1
C3/A166:	A8      	TAY            ; ...
C3/A167:	BF8A9D7E	LDA $7E9D8A,X  ; Inventory slot
C3/A16B:	DA      	PHX            ; Save gear slot
C3/A16C:	A8      	TAY            ; Index former
C3/A16D:	B96918  	LDA $1869,Y    ; Item in slot
C3/A170:	202183  	JSR $8321      ; Compute index
C3/A173:	AE3421  	LDX $2134      ; Load it
C3/A176:	BF1450D8	LDA $D85014,X  ; Item's power
C3/A17A:	8D8021  	STA $2180      ; Add to list
C3/A17D:	FA      	PLX            ; Gear slot
C3/A17E:	E8      	INX            ; Gear slot +1
C3/A17F:	E4E7    	CPX $E7        ; End of list?
C3/A181:	D0E4    	BNE $A167      ; Loop if not
C3/A183:	2087A1  	JSR $A187      ; Sort list
C3/A186:	60      	RTS

Sort list of compatible gear by power
C3/A187:	C6E7    	DEC $E7        ; List size -1
C3/A189:	8B      	PHB            ; Save DB
C3/A18A:	A97E    	LDA #$7E       ; Bank: 7E
C3/A18C:	48      	PHA            ; Put on stack
C3/A18D:	AB      	PLB            ; Set DB to 7E
C3/A18E:	7B      	TDC            ; Clear A
C3/A18F:	A8      	TAY            ; Items done: 0
C3/A190:	7B      	TDC            ; Clear A
C3/A191:	AA      	TAX            ; List slot: 1
C3/A192:	BD8DAC  	LDA $AC8D,X    ; Item's power
C3/A195:	DD8EAC  	CMP $AC8E,X    ; Next is worse?
C3/A198:	B01D    	BCS $A1B7      ; Skip if not
C3/A19A:	85E0    	STA $E0        ; Memorize it
C3/A19C:	BD8A9D  	LDA $9D8A,X    ; Item number A
C3/A19F:	85E1    	STA $E1        ; Memorize it
C3/A1A1:	BD8EAC  	LDA $AC8E,X    ; Item power B
C3/A1A4:	9D8DAC  	STA $AC8D,X    ; Replace A's
C3/A1A7:	BD8B9D  	LDA $9D8B,X    ; Item number B
C3/A1AA:	9D8A9D  	STA $9D8A,X    ; Replace A's
C3/A1AD:	A5E0    	LDA $E0        ; Item power A
C3/A1AF:	9D8EAC  	STA $AC8E,X    ; Replace B's
C3/A1B2:	A5E1    	LDA $E1        ; Item number A
C3/A1B4:	9D8B9D  	STA $9D8B,X    ; Replace B's
C3/A1B7:	E8      	INX            ; List slot +1
C3/A1B8:	E4E7    	CPX $E7        ; End of list?
C3/A1BA:	D0D6    	BNE $A192      ; Loop if not
C3/A1BC:	C8      	INY            ; Items done +1
C3/A1BD:	C4E7    	CPY $E7        ; Fully sorted?
C3/A1BF:	D0CF    	BNE $A190      ; Loop if not
C3/A1C1:	AB      	PLB            ; Restore DB
C3/A1C2:	60      	RTS

Load item description for equipped relic (unused)
C3/A1C3:	200883  	JSR $8308      ; Set desc ptrs
C3/A1C6:	20F293  	JSR $93F2      ; Define Y
C3/A1C9:	A54B    	LDA $4B        ; On "Relic 1"?
C3/A1CB:	D005    	BNE $A1D2      ; Branch if not
C3/A1CD:	B92300  	LDA $0023,Y    ; Relic 1
C3/A1D0:	8003    	BRA $A1D5      ; Skip a line
C3/A1D2:	B92400  	LDA $0024,Y    ; Relic 2
C3/A1D5:	4C3857  	JMP $5738      ; Load description

Load item description for relic browsing
C3/A1D8:	200883  	JSR $8308      ; Set desc ptrs
C3/A1DB:	7B      	TDC            ; Clear A
C3/A1DC:	A54B    	LDA $4B        ; Gear list slot
C3/A1DE:	AA      	TAX            ; Index it
C3/A1DF:	BF8A9D7E	LDA $7E9D8A,X  ; Inventory slot
C3/A1E3:	AA      	TAX            ; Index it
C3/A1E4:	BD6918  	LDA $1869,X    ; Item in slot
C3/A1E7:	4C3857  	JMP $5738      ; Load description

Text pointers for party gear overview (SFC)
C3/A1EA:	1AA2    	; R-hand
C3/A1EC:	1FA2    	; L-hand
C3/A1EE:	25A2    	; Head
C3/A1F0:	2BA2    	; Body
C3/A1F2:	31A2    	; Relic 1
C3/A1F4:	37A2    	; Relic 2
C3/A1F6:	3DA2    	; R-hand
C3/A1F8:	42A2    	; L-hand
C3/A1FA:	48A2    	; Head
C3/A1FC:	4EA2    	; Body
C3/A1FE:	54A2    	; Relic 1
C3/A200:	5AA2    	; Relic 2
C3/A202:	60A2    	; R-hand
C3/A204:	65A2    	; L-hand
C3/A206:	6BA2    	; Head
C3/A208:	71A2    	; Body
C3/A20A:	77A2    	; Relic 1
C3/A20C:	7DA2    	; Relic 2
C3/A20E:	83A2    	; R-hand
C3/A210:	88A2    	; L-hand
C3/A212:	8EA2    	; Head
C3/A214:	94A2    	; Body
C3/A216:	9AA2    	; Relic 1
C3/A218:	A0A2    	; Relic 2

Positioned party gear overview text for member 1 (SFC)
C3/A21A:	4F39 9F2D00     ; R-hand
C3/A21F:	6B39 633FA900   ; L-hand
C3/A225:	CF39 8B7F9D00   ; Head
C3/A22B:	EB39 6BA73F00   ; Body
C3/A231:	4F3A 8A6E5400   ; Relic 1
C3/A237:	6B3A 8A6E5500   ; Relic 2

Positioned party gear overview text for member 2 (SFC)
C3/A23D:	4F3B 9F2D00     ; R-hand
C3/A242:	6B3B 633FA900   ; L-hand
C3/A248:	CF3B 8B7F9D00   ; Head
C3/A24E:	EB3B 6BA73F00   ; Body
C3/A254:	4F3C 8A6E5400   ; Relic 1
C3/A25A:	6B3C 8A6E5500   ; Relic 2

Positioned party gear overview text for member 3 (SFC)
C3/A260:	4F3D 9F2D00     ; R-hand
C3/A265:	6B3D 633FA900   ; L-hand
C3/A26B:	CF3D 8B7F9D00   ; Head
C3/A271:	EB3D 6BA73F00   ; Body
C3/A277:	4F3E 8A6E5400   ; Relic 1
C3/A27D:	6B3E 8A6E5500   ; Relic 2

Positioned party gear overview text for member 4 (SFC)
C3/A283:	4F3F 9F2D00     ; R-hand
C3/A288:	6B3F 633FA900   ; L-hand
C3/A28E:	CF3F 8B7F9D00   ; Head
C3/A294:	EB3F 6BA73F00   ; Body
C3/A29A:	4F40 8A6E5400   ; Relic 1
C3/A2A0:	6B40 8A6E5500   ; Relic 2

Text pointers for Equip menu
C3/A2A6:	1AA3    	; EQUIP
C3/A2A8:	22A3    	; OPTIMUM
C3/A2AA:	2CA3    	; RMOVE
C3/A2AC:	34A3    	; EMPTY
C3/A2AE:	CCA2    	; Head
C3/A2B0:	D3A2    	; Body

Text pointers for Relic menu
C3/A2B2:	3CA3    	; EQUIP
C3/A2B4:	44A3    	; REMOVE
C3/A2B6:	DAA2    	; Relic
C3/A2B8:	E2A2    	; Relic

Positioned text for Equip and Relic menus
C3/A2BA:	0D7A 91C4A19AA79D00            ; R-hand
C3/A2C3:	8D7A 8BC4A19AA79D00            ; L-hand
C3/A2CC:	0D7B 879E9A9D00                ; Head
C3/A2D3:	8D7B 81A89DB200                ; Body
C3/A2DA:	0D7B 919EA5A29C00              ; Relic
C3/A2E2:	8D7B 919EA5A29C00              ; Relic

Positioned spaces for blanking options and title in gear menus
C3/A2EA:	0D79 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00

Positioned text for title in Equip and Relic menus
C3/A309:	3979 849094888F00              ; EQUIP
C3/A311:	3979 91848C8E958400            ; REMOVE

Positioned text for options in Equip menu
C3/A31A:	0D79 849094888F00              ; EQUIP
C3/A322:	1B79 8E8F93888C948C00          ; OPTIMUM
C3/A32C:	2D79 918C8E958400              ; RMOVE
C3/A334:	3B79 848C8F939800              ; EMPTY

Positioned text for options in Relic menu
C3/A33C:	1179 849094888F00              ; EQUIP
C3/A344:	1F79 91848C8E958400            ; REMOVE

Text pointers for Equip and Relic menus
C3/A34D:	71A3    	               ; Vigor
C3/A34F:	79A3    	               ; Stamina
C3/A351:	83A3    	               ; Mag.Pwr
C3/A353:	8DA3    	               ; Evade %
C3/A355:	97A3    	               ; MBlock%
C3/A357:	A1A3    	               ; ->
C3/A359:	A5A3    	               ; ->
C3/A35B:	A9A3    	               ; ->
C3/A35D:	ADA3    	               ; ->
C3/A35F:	B1A3    	               ; ->
C3/A361:	B5A3    	               ; ->
C3/A363:	B9A3    	               ; ->
C3/A365:	BDA3    	               ; ->
C3/A367:	C1A3    	               ; ->
C3/A369:	C5A3    	               ; Speed
C3/A36B:	CDA3    	               ; Bat.Pwr
C3/A36D:	D7A3    	               ; Defense
C3/A36F:	E1A3    	               ; Mag.Def

Positioned text for Equip and Relic menus
C3/A371:	A97C 95A2A0A8AB00              ; Vigor
C3/A379:	A97D 92AD9AA6A2A79A00          ; Stamina
C3/A383:	297E 8C9AA0C58FB0AB00          ; Mag.Pwr
C3/A38D:	A97F 84AF9A9D9EFFCD00          ; Evade %
C3/A397:	A980 8C81A5A89CA4CD00          ; MBlock%
C3/A3A1:	BD7C D500                      ; ->
C3/A3A5:	3D7D D500                      ; ->
C3/A3A9:	BD7D D500                      ; ->
C3/A3AD:	3D7E D500                      ; ->
C3/A3B1:	3D7F D500                      ; ->
C3/A3B5:	BD7F D500                      ; ->
C3/A3B9:	BD7E D500                      ; ->
C3/A3BD:	3D80 D500                      ; ->
C3/A3C1:	BD80 D500                      ; ->
C3/A3C5:	297D 92A99E9E9D00              ; Speed
C3/A3CD:	A97E 819AADC58FB0AB00          ; Bat.Pwr
C3/A3D7:	297F 839E9F9EA7AC9E00          ; Defense
C3/A3E1:	2980 8C9AA0C5839E9F00          ; Mag.Def
C3/A3EB:	2379 84A6A9ADB200              ; Empty
C3/A3F3:	2179 8EA9ADA2A6AEA600          ; Optimum
C3/A3FD:	A379 84A6A9ADB200              ; Empty
C3/A405:	A179 8EA9ADA2A6AEA600          ; Optimum
C3/A40F:	157A 84AAAEA2A9A69EA7ADFF      ; Equipment changed.
        	     9CA19AA7A09E9DC500

Establish button purposes and autofire delays
C3/A424:	A908    	LDA #$08       ; Initial delay
C3/A426:	8D2902  	STA $0229      ; For: General
C3/A429:	A903    	LDA #$03       ; Repeat delay
C3/A42B:	8D2A02  	STA $022A      ; For: General
C3/A42E:	8D2602  	STA $0226      ; For: A in battle
C3/A431:	A920    	LDA #$20       ; Initial delay
C3/A433:	8D2502  	STA $0225      ; For: A in battle
C3/A436:	AD541D  	LDA $1D54      ; Game options
C3/A439:	2940    	AND #$40       ; Custom buttons?
C3/A43B:	F004    	BEQ $A441      ; Reset if not
C3/A43D:	20C4A5  	JSR $A5C4      ; Apply user keys
C3/A440:	6B      	RTL            ; Exit
C3/A441:	20D1A5  	JSR $A5D1      ; Reset buttons
C3/A444:	6B      	RTL

Decode joypads for battle
C3/A445:	AD541D  	LDA $1D54      ; Two players?
C3/A448:	100E    	BPL $A458      ; Branch if not
C3/A44A:	7B      	TDC            ; Clear A
C3/A44B:	AD0102  	LDA $0201      ; Member slot
C3/A44E:	AA      	TAX            ; Index it
C3/A44F:	AD4F1D  	LDA $1D4F      ; Assigned pad
C3/A452:	3F3DA5C3	AND $C3A53D,X  ; Player 2's?
C3/A456:	D005    	BNE $A45D      ; Branch if so
C3/A458:	AE1842  	LDX $4218      ; Player 1 keys
C3/A45B:	8005    	BRA $A462      ; Skip 2 lines
C3/A45D:	AE1A42  	LDX $421A      ; Player 2 keys
C3/A460:	8000    	BRA $A462      ; ...
C3/A462:	2083A4  	JSR $A483      ; Decode keys
C3/A465:	20BDA4  	JSR $A4BD      ; Do autofire
C3/A468:	20F6A4  	JSR $A4F6      ; Adjust it
C3/A46B:	4C27A5  	JMP $A527      ; Restore $E0+

Decode joypads for field menu
C3/A46E:	AE1842  	LDX $4218      ; Player 1 keys
C3/A471:	2083A4  	JSR $A483      ; Decode keys
C3/A474:	20BDA4  	JSR $A4BD      ; Do autofire
C3/A477:	4C27A5  	JMP $A527      ; Restore $E0+

Decode joypads for field
C3/A47A:	AE1842  	LDX $4218      ; Player 1 keys
C3/A47D:	2083A4  	JSR $A483      ; Decode keys
C3/A480:	4C27A5  	JMP $A527      ; Restore $E0+

Update non-time-based joypad keys
C3/A483:	A4E0    	LDY $E0        ; Temp var
C3/A485:	8C1302  	STY $0213      ; Make backup
C3/A488:	A4E7    	LDY $E7        ; Temp var
C3/A48A:	8C1502  	STY $0215      ; Make backup
C3/A48D:	A4E9    	LDY $E9        ; Temp var
C3/A48F:	8C1702  	STY $0217      ; Make backup
C3/A492:	A4EB    	LDY $EB        ; Temp var
C3/A494:	8C1902  	STY $0219      ; Make backup
C3/A497:	86EB    	STX $EB        ; Save pad keys
C3/A499:	C220    	REP #$20       ; 16-bit A
C3/A49B:	A50C    	LDA $0C        ; Former keys
C3/A49D:	29F0FF  	AND #$FFF0     ; Unused bits...
C3/A4A0:	85E0    	STA $E0        ; Memorize them
C3/A4A2:	2041A5  	JSR $A541      ; Convert keys
C3/A4A5:	A50C    	LDA $0C        ; Former keys
C3/A4A7:	49FFFF  	EOR #$FFFF     ; Invert them
C3/A4AA:	2506    	AND $06        ; Keep current
C3/A4AC:	8508    	STA $08        ; Set no-auto keys
C3/A4AE:	A406    	LDY $06        ; Pushed keys
C3/A4B0:	840C    	STY $0C        ; Set former keys
C3/A4B2:	AD1842  	LDA $4218      ; Player 1 keys
C3/A4B5:	0D1A42  	ORA $421A      ; Add player 2's
C3/A4B8:	8504    	STA $04        ; Set merged keys
C3/A4BA:	E220    	SEP #$20       ; 8-bit A
C3/A4BC:	60      	RTS

Update slow autofire keys
C3/A4BD:	C220    	REP #$20       ; 16-bit A
C3/A4BF:	A506    	LDA $06        ; Pushed keys
C3/A4C1:	29F0FF  	AND #$FFF0     ; Clear pad type
C3/A4C4:	C5E0    	CMP $E0        ; Unchanged?
C3/A4C6:	E220    	SEP #$20       ; 8-bit A
C3/A4C8:	D01B    	BNE $A4E5      ; Use new if not
C3/A4CA:	AD2702  	LDA $0227      ; Initial delay
C3/A4CD:	F005    	BEQ $A4D4      ; Branch if over
C3/A4CF:	CE2702  	DEC $0227      ; Initial delay -1
C3/A4D2:	D01D    	BNE $A4F1      ; No keys if > 0
C3/A4D4:	CE2802  	DEC $0228      ; Repeat delay -1
C3/A4D7:	D018    	BNE $A4F1      ; No keys if > 0
C3/A4D9:	AD2A02  	LDA $022A      ; Delay: 3
C3/A4DC:	8D2802  	STA $0228      ; Set repeat timer
C3/A4DF:	A406    	LDY $06        ; Pushed keys
C3/A4E1:	840A    	STY $0A        ; Set slow keys
C3/A4E3:	8010    	BRA $A4F5      ; Exit
C3/A4E5:	AD2902  	LDA $0229      ; Delay: 8
C3/A4E8:	8D2702  	STA $0227      ; Set initial
C3/A4EB:	AD2A02  	LDA $022A      ; Delay: 3
C3/A4EE:	8D2802  	STA $0228      ; Set repeat timer
C3/A4F1:	A408    	LDY $08        ; No-autofire keys
C3/A4F3:	840A    	STY $0A        ; Set slow keys
C3/A4F5:	60      	RTS

Adjust slow autofire keys for battle
C3/A4F6:	A506    	LDA $06        ; Pushed keys
C3/A4F8:	8980    	BIT #$80       ; Pushing A?
C3/A4FA:	F01B    	BEQ $A517      ; Branch if not
C3/A4FC:	AD2502  	LDA $0225      ; Initial delay
C3/A4FF:	F005    	BEQ $A506      ; Branch if over
C3/A501:	CE2502  	DEC $0225      ; Initial delay -1
C3/A504:	D01C    	BNE $A522      ; New keys if > 0
C3/A506:	CE2602  	DEC $0226      ; Repeat delay -1
C3/A509:	D017    	BNE $A522      ; New keys if > 0
C3/A50B:	AD2A02  	LDA $022A      ; Delay: 3
C3/A50E:	8D2602  	STA $0226      ; Set repeat timer
C3/A511:	A980    	LDA #$80       ; Button: A
C3/A513:	040A    	TSB $0A        ; Add to slow keys
C3/A515:	800F    	BRA $A526      ; Exit
C3/A517:	A920    	LDA #$20       ; Delay: 32
C3/A519:	8D2502  	STA $0225      ; Set initial
C3/A51C:	AD2A02  	LDA $022A      ; Delay: 3
C3/A51F:	8D2602  	STA $0226      ; Set repeat timer
C3/A522:	A508    	LDA $08        ; No-autofire keys
C3/A524:	850A    	STA $0A        ; Set slow keys
C3/A526:	60      	RTS

Restore backup of multipurpose variables
C3/A527:	AC1302  	LDY $0213      ; $E0 backup
C3/A52A:	84E0    	STY $E0        ; Restore it
C3/A52C:	AC1502  	LDY $0215      ; $E7 backup
C3/A52F:	84E7    	STY $E7        ; Restore it
C3/A531:	AC1702  	LDY $0217      ; $E9 backup
C3/A534:	84E9    	STY $E9        ; Restore it
C3/A536:	AC1902  	LDY $0219      ; $EB backup
C3/A539:	84EB    	STY $EB        ; Restore it
C3/A53B:	7B      	TDC            ; Clear A
C3/A53C:	6B      	RTL

Bitfield for joypad assignments
C3/A53D:	01      	; Member 1
C3/A53E:	02      	; Member 2
C3/A53F:	04      	; Member 3
C3/A540:	08      	; Member 4

Convert pushed keys based on user settings (for SFC)
C3/A541:	A5EB    	LDA $EB        ; Pushed keys
C3/A543:	29000F  	AND #$0F00     ; Get D-Pad's
C3/A546:	8506    	STA $06        ; Set fast keys
C3/A548:	A98000  	LDA #$0080     ; Target: A
C3/A54B:	85E7    	STA $E7        ; Set key #1
C3/A54D:	A90080  	LDA #$8000     ; Target: B
C3/A550:	85E9    	STA $E9        ; Set key #2
C3/A552:	A400    	LDY $00        ; Cfg index: 0
C3/A554:	2081A5  	JSR $A581      ; Do A and B
C3/A557:	A94000  	LDA #$0040     ; Target: X
C3/A55A:	85E7    	STA $E7        ; Set key #1
C3/A55C:	A90040  	LDA #$4000     ; Target: Y
C3/A55F:	85E9    	STA $E9        ; Set key #2
C3/A561:	C8      	INY            ; Index +1
C3/A562:	2081A5  	JSR $A581      ; Do X and Y
C3/A565:	A92000  	LDA #$0020     ; Target: L
C3/A568:	85E7    	STA $E7        ; Set key #1
C3/A56A:	A91000  	LDA #$0010     ; Target: R
C3/A56D:	85E9    	STA $E9        ; Set key #2
C3/A56F:	C8      	INY            ; Index +1
C3/A570:	2081A5  	JSR $A581      ; Do L and R
C3/A573:	A90010  	LDA #$1000     ; Target: Start
C3/A576:	85E7    	STA $E7        ; Set key #1
C3/A578:	A90020  	LDA #$2000     ; Target: Select
C3/A57B:	85E9    	STA $E9        ; Set key #2
C3/A57D:	C8      	INY            ; Index +1
C3/A57E:	4C81A5  	JMP $A581      ; ...

Convert two pushed keys to their respective purposes (for SFC)
C3/A581:	A5EB    	LDA $EB        ; Pushed keys
C3/A583:	24E7    	BIT $E7        ; Has key #1?
C3/A585:	F014    	BEQ $A59B      ; Skip if not
C3/A587:	7B      	TDC            ; Clear A
C3/A588:	E220    	SEP #$20       ; 8-bit A
C3/A58A:	B92002  	LDA $0220,Y    ; Key actions
C3/A58D:	29F0    	AND #$F0       ; Get key #1's
C3/A58F:	C220    	REP #$20       ; 16-bit A
C3/A591:	4A      	LSR A          ; Put in b3-b6
C3/A592:	4A      	LSR A          ; Put in b2-b5
C3/A593:	4A      	LSR A          ; Put in b1-b4
C3/A594:	AA      	TAX            ; Index it
C3/A595:	BFB4A5C3	LDA $C3A5B4,X  ; Action bit
C3/A599:	0406    	TSB $06        ; Set fast key
C3/A59B:	A5EB    	LDA $EB        ; Pushed keys
C3/A59D:	24E9    	BIT $E9        ; Has key #2?
C3/A59F:	F012    	BEQ $A5B3      ; Exit if not
C3/A5A1:	7B      	TDC            ; Clear A
C3/A5A2:	E220    	SEP #$20       ; 8-bit A
C3/A5A4:	B92002  	LDA $0220,Y    ; Key actions
C3/A5A7:	290F    	AND #$0F       ; Get key #2's
C3/A5A9:	C220    	REP #$20       ; 16-bit A
C3/A5AB:	0A      	ASL A          ; Double it
C3/A5AC:	AA      	TAX            ; Index it
C3/A5AD:	BFB4A5C3	LDA $C3A5B4,X  ; Action bit
C3/A5B1:	0406    	TSB $06        ; Set fast key
C3/A5B3:	60      	RTS

Bitfield for button purposes
C3/A5B4:	0010    	; End        (Start)
C3/A5B6:	8000    	; Confirm    (A)
C3/A5B8:	0080    	; Cancel     (B)
C3/A5BA:	4000    	; Menu       (X)
C3/A5BC:	0040    	; Switch     (Y)
C3/A5BE:	2000    	; Page up    (L)
C3/A5C0:	1000    	; Page down  (R, Select)
C3/A5C2:	0020    	; Unused

Apply player's button settings (SFC)
C3/A5C4:	AC501D  	LDY $1D50      ; A, B, X, Y
C3/A5C7:	8C2002  	STY $0220      ; Set purposes
C3/A5CA:	AC521D  	LDY $1D52      ; L, R, Select
C3/A5CD:	8C2202  	STY $0222      ; Set purposes
C3/A5D0:	60      	RTS

Apply default button settings
C3/A5D1:	A01234  	LDY #$3412     ; A, B, X, Y
C3/A5D4:	8C2002  	STY $0220      ; Set purposes
C3/A5D7:	A05606  	LDY #$0656     ; L, R, Select
C3/A5DA:	8C2202  	STY $0222      ; Set purposes
C3/A5DD:	60      	RTS

Clear buffer for storing actor's pseudonym in ending
C3/A5DE:	7B      	TDC            ; Clear A
C3/A5DF:	AA      	TAX            ; Index: 0
C3/A5E0:	C220    	REP #$20       ; 16-bit A
C3/A5E2:	9F71A27E	STA $7EA271,X  ; Tile row A
C3/A5E6:	E8      	INX            ; Index +1
C3/A5E7:	E8      	INX            ; Index +1
C3/A5E8:	9F71A27E	STA $7EA271,X  ; Tile row B
C3/A5EC:	E8      	INX            ; Index +1
C3/A5ED:	E8      	INX            ; Index +1
C3/A5EE:	E04002  	CPX #$0240     ; Done 36 tiles?
C3/A5F1:	D0EF    	BNE $A5E2      ; Loop if not
C3/A5F3:	E220    	SEP #$20       ; 8-bit A
C3/A5F5:	60      	RTS

Upload element's VWF graphics; freeze CGRAM
C3/A5F6:	2000A6  	JSR $A600      ; Set src and dst
C3/A5F9:	A901    	LDA #$01       ; CGRAM: Freeze
C3/A5FB:	1445    	TRB $45        ; Set NMI flag
C3/A5FD:	4CAC14  	JMP $14AC      ; Upload graphics

Set to upload VWF string graphics (elements, ending pseudonym)
C3/A600:	841B    	STY $1B        ; Set VRAM ptr
C3/A602:	A071A2  	LDY #$A271     ; 7E/A271
C3/A605:	841D    	STY $1D        ; Set src LBs
C3/A607:	A02001  	LDY #$0120     ; Bytes: 288
C3/A60A:	8419    	STY $19        ; Set data size
C3/A60C:	A97E    	LDA #$7E       ; Bank: 7E
C3/A60E:	851F    	STA $1F        ; Set src HB
C3/A610:	60      	RTS

Build tilemap for actor's pseudonym in ending
C3/A611:	A24978  	LDX #$7849     ; Base: 7E/7849
C3/A614:	86EB    	STX $EB        ; Set map ptr LBs
C3/A616:	A97E    	LDA #$7E       ; Bank: 7E
C3/A618:	85ED    	STA $ED        ; Set ptr HB
C3/A61A:	A09805  	LDY #$0598     ; Ends at 12,23
C3/A61D:	84E7    	STY $E7        ; Set row's limit
C3/A61F:	A08005  	LDY #$0580     ; Starts at 1,23
C3/A622:	A21024  	LDX #$2410     ; Tile 16, pal 1
C3/A625:	86E0    	STX $E0        ; Priority enabled
C3/A627:	2083A7  	JSR $A783      ; Build row 1
C3/A62A:	A0D805  	LDY #$05D8     ; Ends at 12,24
C3/A62D:	84E7    	STY $E7        ; Set row's limit
C3/A62F:	A0C005  	LDY #$05C0     ; Starts at 1,24
C3/A632:	A21124  	LDX #$2411     ; Tile 17, pal 1
C3/A635:	86E0    	STX $E0        ; Priority enabled
C3/A637:	2083A7  	JSR $A783      ; Build row 2
C3/A63A:	60      	RTS

Load and set to upload VWF graphics for actor's pseudonym
C3/A63B:	20DEA5  	JSR $A5DE      ; Clear GFX buffer
C3/A63E:	648D    	STZ $8D        ; String width: 0
C3/A640:	64ED    	STZ $ED        ; VRAM index LB: 0
C3/A642:	64EE    	STZ $EE        ; VRAM index HB: 0
C3/A644:	A906    	LDA #$06       ; Letters: 6
C3/A646:	85F1    	STA $F1        ; Set counter
C3/A648:	A600    	LDX $00        ; Letter index: 0
C3/A64A:	BF899E7E	LDA $7E9E89,X  ; Letter
C3/A64E:	20A9A8  	JSR $A8A9      ; Adjust value
C3/A651:	DA      	PHX            ; Save char index
C3/A652:	20B1A8  	JSR $A8B1      ; Load graphics
C3/A655:	FA      	PLX            ; Letter index
C3/A656:	E8      	INX            ; Letter index +1
C3/A657:	C6F1    	DEC $F1        ; One less letter
C3/A659:	D0EF    	BNE $A64A      ; Loop till last
C3/A65B:	A08020  	LDY #$2080     ; VRAM pointer
C3/A65E:	2000A6  	JSR $A600      ; Queue upload
C3/A661:	60      	RTS

Build description tilemap for Skills submenus
C3/A662:	A24980  	LDX #$8049     ; Base: 7E/8049
C3/A665:	86EB    	STX $EB        ; Set map ptr LBs
C3/A667:	A97E    	LDA #$7E       ; Bank: 7E
C3/A669:	85ED    	STA $ED        ; Set ptr HB
C3/A66B:	A0BC00  	LDY #$00BC     ; Ends at 30,3
C3/A66E:	84E7    	STY $E7        ; Set row's limit
C3/A670:	A08400  	LDY #$0084     ; Starts at 3,3
C3/A673:	A20035  	LDX #$3500     ; Tile 256, pal 5
C3/A676:	86E0    	STX $E0        ; Priority enabled
C3/A678:	2083A7  	JSR $A783      ; Do line 1, row 1
C3/A67B:	A0FC00  	LDY #$00FC     ; Ends at 30,4
C3/A67E:	84E7    	STY $E7        ; Set row's limit
C3/A680:	A0C400  	LDY #$00C4     ; Starts at 3,4
C3/A683:	A20135  	LDX #$3501     ; Tile 257, pal 5
C3/A686:	86E0    	STX $E0        ; Priority enabled
C3/A688:	2083A7  	JSR $A783      ; Do line 1, row 2
C3/A68B:	A03C01  	LDY #$013C     ; Ends at 30,5
C3/A68E:	84E7    	STY $E7        ; Set row's limit
C3/A690:	A00401  	LDY #$0104     ; Starts at 3,5
C3/A693:	A23835  	LDX #$3538     ; Tile 312, pal 5
C3/A696:	86E0    	STX $E0        ; Priority enabled
C3/A698:	2083A7  	JSR $A783      ; Do line 2, row 1
C3/A69B:	A07C01  	LDY #$017C     ; Ends at 30,6
C3/A69E:	84E7    	STY $E7        ; Set row's limit
C3/A6A0:	A04401  	LDY #$0144     ; Starts at 3,6
C3/A6A3:	A23935  	LDX #$3539     ; Tile 313, pal 5
C3/A6A6:	86E0    	STX $E0        ; Priority enabled
C3/A6A8:	4C83A7  	JMP $A783      ; Do line 2, row 2

Build description tilemap for Relic menu
C3/A6AB:	A24978  	LDX #$7849     ; Base: 7E/7849
C3/A6AE:	86EB    	STX $EB        ; Set map ptr LBs
C3/A6B0:	A97E    	LDA #$7E       ; Bank: 7E
C3/A6B2:	85ED    	STA $ED        ; Set ptr HB
C3/A6B4:	A0BC01  	LDY #$01BC     ; Ends at 30,7
C3/A6B7:	84E7    	STY $E7        ; Set row's limit
C3/A6B9:	A08401  	LDY #$0184     ; Starts at 3,7
C3/A6BC:	A20035  	LDX #$3500     ; Tile 256, pal 5
C3/A6BF:	86E0    	STX $E0        ; Priority enabled
C3/A6C1:	2083A7  	JSR $A783      ; Do line 1, row 1
C3/A6C4:	A0FC01  	LDY #$01FC     ; Ends at 30,8
C3/A6C7:	84E7    	STY $E7        ; Set row's limit
C3/A6C9:	A0C401  	LDY #$01C4     ; Starts at 3,8
C3/A6CC:	A20135  	LDX #$3501     ; Tile 257, pal 5
C3/A6CF:	86E0    	STX $E0        ; Priority enabled
C3/A6D1:	2083A7  	JSR $A783      ; Do line 1, row 2
C3/A6D4:	A03C02  	LDY #$023C     ; Ends at 30,9
C3/A6D7:	84E7    	STY $E7        ; Set row's limit
C3/A6D9:	A00402  	LDY #$0204     ; Starts at 3,9
C3/A6DC:	A23835  	LDX #$3538     ; Tile 312, pal 5
C3/A6DF:	86E0    	STX $E0        ; Priority enabled
C3/A6E1:	2083A7  	JSR $A783      ; Do line 2, row 1
C3/A6E4:	A07C02  	LDY #$027C     ; Ends at 30,10
C3/A6E7:	84E7    	STY $E7        ; Set row's limit
C3/A6E9:	A04402  	LDY #$0244     ; Starts at 3,10
C3/A6EC:	A23935  	LDX #$3539     ; Tile 313, pal 5
C3/A6EF:	86E0    	STX $E0        ; Priority enabled
C3/A6F1:	4C83A7  	JMP $A783      ; Do line 2, row 2

Build description tilemap for shop menu
C3/A6F4:	A24978  	LDX #$7849     ; Base: 7E/7849
C3/A6F7:	86EB    	STX $EB        ; Set map ptr LBs
C3/A6F9:	A97E    	LDA #$7E       ; Bank: 7E
C3/A6FB:	85ED    	STA $ED        ; Set ptr HB
C3/A6FD:	A0BC04  	LDY #$04BC     ; Ends at 30,19
C3/A700:	84E7    	STY $E7        ; Set row's limit
C3/A702:	A08404  	LDY #$0484     ; Starts at 3,19
C3/A705:	A20035  	LDX #$3500     ; Tile 256, pal 5
C3/A708:	86E0    	STX $E0        ; Priority enabled
C3/A70A:	2083A7  	JSR $A783      ; Do line 1, row 1
C3/A70D:	A0FC04  	LDY #$04FC     ; Ends at 30,20
C3/A710:	84E7    	STY $E7        ; Set row's limit
C3/A712:	A0C404  	LDY #$04C4     ; Starts at 3,20
C3/A715:	A20135  	LDX #$3501     ; Tile 257, pal 5
C3/A718:	86E0    	STX $E0        ; Priority enabled
C3/A71A:	2083A7  	JSR $A783      ; Do line 1, row 2
C3/A71D:	A03C05  	LDY #$053C     ; Ends at 30,21
C3/A720:	84E7    	STY $E7        ; Set row's limit
C3/A722:	A00405  	LDY #$0504     ; Starts at 3,21
C3/A725:	A23835  	LDX #$3538     ; Tile 312, pal 5
C3/A728:	86E0    	STX $E0        ; Priority enabled
C3/A72A:	2083A7  	JSR $A783      ; Do line 2, row 1
C3/A72D:	A07C05  	LDY #$057C     ; Ends at 30,22
C3/A730:	84E7    	STY $E7        ; Set row's limit
C3/A732:	A04405  	LDY #$0544     ; Starts at 3,22
C3/A735:	A23935  	LDX #$3539     ; Tile 313, pal 5
C3/A738:	86E0    	STX $E0        ; Priority enabled
C3/A73A:	4C83A7  	JMP $A783      ; Do line 2, row 2

Build description tilemap for Item or Colosseum menu
C3/A73D:	A24978  	LDX #$7849     ; Base: 7E/7849
C3/A740:	86EB    	STX $EB        ; Set map ptr LBs
C3/A742:	A97E    	LDA #$7E       ; Bank: 7E
C3/A744:	85ED    	STA $ED        ; Set ptr HB
C3/A746:	A0BC01  	LDY #$01BC     ; Ends at 30,7
C3/A749:	84E7    	STY $E7        ; Set row's limit
C3/A74B:	A08401  	LDY #$0184     ; Starts at 3,7
C3/A74E:	A20035  	LDX #$3500     ; Tile 256, pal 5
C3/A751:	86E0    	STX $E0        ; Priority enabled
C3/A753:	2083A7  	JSR $A783      ; Do line 1, row 1
C3/A756:	A0FC01  	LDY #$01FC     ; Ends at 30,8
C3/A759:	84E7    	STY $E7        ; Set row's limit
C3/A75B:	A0C401  	LDY #$01C4     ; Starts at 3,8
C3/A75E:	A20135  	LDX #$3501     ; Tile 257, pal 5
C3/A761:	86E0    	STX $E0        ; Priority enabled
C3/A763:	2083A7  	JSR $A783      ; Do line 1, row 2
C3/A766:	A03C02  	LDY #$023C     ; Ends at 30,9
C3/A769:	84E7    	STY $E7        ; Set row's limit
C3/A76B:	A00402  	LDY #$0204     ; Starts at 3,9
C3/A76E:	A23835  	LDX #$3538     ; Tile 312, pal 5
C3/A771:	86E0    	STX $E0        ; Priority enabled
C3/A773:	2083A7  	JSR $A783      ; Do line 2, row 1
C3/A776:	A07C02  	LDY #$027C     ; Ends at 30,10
C3/A779:	84E7    	STY $E7        ; Set row's limit
C3/A77B:	A04402  	LDY #$0244     ; Starts at 3,10
C3/A77E:	A23935  	LDX #$3539     ; Tile 313, pal 5
C3/A781:	86E0    	STX $E0        ; Priority enabled
C3/A783:	C220    	REP #$20       ; 16-bit A
C3/A785:	A5E0    	LDA $E0        ; Tile attributes
C3/A787:	97EB    	STA [$EB],Y    ; Put in tilemap
C3/A789:	E6E0    	INC $E0        ; Tile +1
C3/A78B:	E6E0    	INC $E0        ; Tile +1
C3/A78D:	C8      	INY            ; Index +1
C3/A78E:	C8      	INY            ; Index +1
C3/A78F:	C4E7    	CPY $E7        ; Beyond range?
C3/A791:	D0F2    	BNE $A785      ; Loop if not
C3/A793:	E220    	SEP #$20       ; 8-bit A
C3/A795:	60      	RTS

Clear buffer for VWF description graphics
C3/A796:	8B      	PHB            ; Save DB
C3/A797:	A97E    	LDA #$7E       ; Bank: 7E
C3/A799:	48      	PHA            ; Put on stack
C3/A79A:	AB      	PLB            ; Set DB to 7E
C3/A79B:	7B      	TDC            ; Clear A
C3/A79C:	AA      	TAX            ; Tile index: 0
C3/A79D:	C220    	REP #$20       ; 16-bit A
C3/A79F:	9E71A2  	STZ $A271,X    ; Tile A, row 1
C3/A7A2:	9E73A2  	STZ $A273,X    ; Tile A, row 2
C3/A7A5:	9E75A2  	STZ $A275,X    ; Tile A, row 3
C3/A7A8:	9E77A2  	STZ $A277,X    ; Tile A, row 4
C3/A7AB:	9E79A2  	STZ $A279,X    ; Tile A, row 5
C3/A7AE:	9E7BA2  	STZ $A27B,X    ; Tile A, row 6
C3/A7B1:	9E7DA2  	STZ $A27D,X    ; Tile A, row 7
C3/A7B4:	9E7FA2  	STZ $A27F,X    ; Tile A, row 8
C3/A7B7:	9E81A2  	STZ $A281,X    ; Tile B, row 1
C3/A7BA:	9E83A2  	STZ $A283,X    ; Tile B, row 2
C3/A7BD:	9E85A2  	STZ $A285,X    ; Tile B, row 3
C3/A7C0:	9E87A2  	STZ $A287,X    ; Tile B, row 4
C3/A7C3:	9E89A2  	STZ $A289,X    ; Tile B, row 5
C3/A7C6:	9E8BA2  	STZ $A28B,X    ; Tile B, row 6
C3/A7C9:	9E8DA2  	STZ $A28D,X    ; Tile B, row 7
C3/A7CC:	9E8FA2  	STZ $A28F,X    ; Tile B, row 8
C3/A7CF:	9E91A2  	STZ $A291,X    ; Tile C, row 1
C3/A7D2:	9E93A2  	STZ $A293,X    ; Tile C, row 2
C3/A7D5:	9E95A2  	STZ $A295,X    ; Tile C, row 3
C3/A7D8:	9E97A2  	STZ $A297,X    ; Tile C, row 4
C3/A7DB:	9E99A2  	STZ $A299,X    ; Tile C, row 5
C3/A7DE:	9E9BA2  	STZ $A29B,X    ; Tile C, row 6
C3/A7E1:	9E9DA2  	STZ $A29D,X    ; Tile C, row 7
C3/A7E4:	9E9FA2  	STZ $A29F,X    ; Tile C, row 8
C3/A7E7:	9EA1A2  	STZ $A2A1,X    ; Tile D, row 1
C3/A7EA:	9EA3A2  	STZ $A2A3,X    ; Tile D, row 2
C3/A7ED:	9EA5A2  	STZ $A2A5,X    ; Tile D, row 3
C3/A7F0:	9EA7A2  	STZ $A2A7,X    ; Tile D, row 4
C3/A7F3:	9EA9A2  	STZ $A2A9,X    ; Tile D, row 5
C3/A7F6:	9EABA2  	STZ $A2AB,X    ; Tile D, row 6
C3/A7F9:	9EADA2  	STZ $A2AD,X    ; Tile D, row 7
C3/A7FC:	9EAFA2  	STZ $A2AF,X    ; Tile D, row 8
C3/A7FF:	8A      	TXA            ; Tile index
C3/A800:	18      	CLC            ; Prepare ADC
C3/A801:	694000  	ADC #$0040     ; Skip 4 tiles
C3/A804:	AA      	TAX            ; Reindex it
C3/A805:	E00007  	CPX #$0700     ; Done 112 tiles?
C3/A808:	D095    	BNE $A79F      ; Loop if not
C3/A80A:	E220    	SEP #$20       ; 8-bit A
C3/A80C:	AB      	PLB            ; Restore DB
C3/A80D:	60      	RTS

Update VWF description
C3/A80E:	AA      	TAX            ; Index mode
C3/A80F:	7C12A8  	JMP ($A812,X)  ; Handle mode

Jump table for the above
C3/A812:	18A8    	; Clear description
C3/A814:	2FA8    	; Sustain description
C3/A816:	1BA8    	; Initialize variables

Mode 0: Clear description
C3/A818:	2096A7  	JSR $A796      ; Clear desc GFX

Mode 2: Initialize variables
C3/A81B:	648D    	STZ $8D        ; Line width: 0
C3/A81D:	A62D    	LDX $2D        ; Queue index
C3/A81F:	A901    	LDA #$01       ; Mode: 1
C3/A821:	9D4936  	STA $3649,X    ; Next: Update
C3/A824:	7B      	TDC            ; Clear A
C3/A825:	C220    	REP #$20       ; 16-bit A
C3/A827:	9DCA33  	STA $33CA,X    ; Char index: 0
C3/A82A:	9D4A34  	STA $344A,X    ; VRAM index: 0
C3/A82D:	E220    	SEP #$20       ; 8-bit A

Mode 1: Sustain description
C3/A82F:	A526    	LDA $26        ; Menu mode
C3/A831:	C917    	CMP #$17       ; Item menu top?
C3/A833:	F058    	BEQ $A88D      ; Blank if so
C3/A835:	A546    	LDA $46        ; Menu flags
C3/A837:	29C0    	AND #$C0       ; No scrollbar?
C3/A839:	F006    	BEQ $A841      ; Branch if so
C3/A83B:	A506    	LDA $06        ; Pushed keys
C3/A83D:	2930    	AND #$30       ; Using L or R?
C3/A83F:	D054    	BNE $A895      ; Reset if so
C3/A841:	A545    	LDA $45        ; Menu flags
C3/A843:	8920    	BIT #$20       ; Ignore D-Pad?
C3/A845:	D006    	BNE $A84D      ; Branch if so
C3/A847:	A507    	LDA $07        ; Pushed keys
C3/A849:	290F    	AND #$0F       ; Using D-Pad?
C3/A84B:	D048    	BNE $A895      ; Reset if so
C3/A84D:	A545    	LDA $45        ; Menu flags
C3/A84F:	8910    	BIT #$10       ; Clear desc?
C3/A851:	D042    	BNE $A895      ; Reset if so
C3/A853:	A42D    	LDY $2D        ; Queue index
C3/A855:	BE4A34  	LDX $344A,Y    ; VRAM index
C3/A858:	86ED    	STX $ED        ; Memorize it
C3/A85A:	BECA33  	LDX $33CA,Y    ; Char index

Fork: Handle line break
C3/A85D:	BFC99E7E	LDA $7E9EC9,X  ; Text character
C3/A861:	F039    	BEQ $A89C      ; Branch if <end>
C3/A863:	C901    	CMP #$01       ; Line break?
C3/A865:	D00E    	BNE $A875      ; Branch if not
C3/A867:	648D    	STZ $8D        ; Line width: 0
C3/A869:	C220    	REP #$20       ; 16-bit A
C3/A86B:	A98003  	LDA #$0380     ; Base tile: 57
C3/A86E:	994A34  	STA $344A,Y    ; Set VRAM index
C3/A871:	E220    	SEP #$20       ; 8-bit A
C3/A873:	8008    	BRA $A87D      ; Queue upload

Fork: Handle character
C3/A875:	20A9A8  	JSR $A8A9      ; Char number -128
C3/A878:	DA      	PHX            ; Save char index
C3/A879:	20B1A8  	JSR $A8B1      ; Load graphics
C3/A87C:	FA      	PLX            ; Char index

Fork: Queue upload, advance char index
C3/A87D:	E8      	INX            ; Char index +1
C3/A87E:	A42D    	LDY $2D        ; Queue index
C3/A880:	C220    	REP #$20       ; 16-bit A
C3/A882:	8A      	TXA            ; Char index
C3/A883:	99CA33  	STA $33CA,Y    ; Put in queue
C3/A886:	E220    	SEP #$20       ; 8-bit A
C3/A888:	2091A9  	JSR $A991      ; Queue upload
C3/A88B:	38      	SEC            ; Set to requeue
C3/A88C:	60      	RTS

Fork: Clear description, stop updating
C3/A88D:	2096A7  	JSR $A796      ; Clear desc GFX
C3/A890:	2091A9  	JSR $A991      ; Set to upload
C3/A893:	18      	CLC            ; Set to dequeue
C3/A894:	60      	RTS

Fork: Set to reset description
C3/A895:	A62D    	LDX $2D        ; Queue index
C3/A897:	9E4936  	STZ $3649,X    ; Mode: 0
C3/A89A:	38      	SEC            ; Set to requeue
C3/A89B:	60      	RTS

Fork: Handle terminator
C3/A89C:	A901    	LDA #$01       ; CGRAM: Refresh
C3/A89E:	0445    	TSB $45        ; Set NMI flag
C3/A8A0:	A62D    	LDX $2D        ; Queue index
C3/A8A2:	A902    	LDA #$02       ; Mode: 2
C3/A8A4:	9D4936  	STA $3649,X    ; Next: Init
C3/A8A7:	38      	SEC            ; Set to requeue
C3/A8A8:	60      	RTS

Make character number zero-based, clear graphics table pointer
C3/A8A9:	38      	SEC            ; Prepare SBC
C3/A8AA:	E980    	SBC #$80       ; Adjust letter
C3/A8AC:	64EB    	STZ $EB        ; Table ptr LB: 0
C3/A8AE:	64EC    	STZ $EC        ; Table ptr HB: 0
C3/A8B0:	60      	RTS

Load VWF character's graphics into string, add shadow effect
C3/A8B1:	48      	PHA            ; Save text char
C3/A8B2:	8F024200	STA $004202    ; Set multiplicand
C3/A8B6:	A916    	LDA #$16       ; GFX data size
C3/A8B8:	8F034200	STA $004203    ; Set multiplier
C3/A8BC:	A90B    	LDA #$0B       ; Rows left: 11
C3/A8BE:	85E5    	STA $E5        ; Set counter
C3/A8C0:	C220    	REP #$20       ; 16-bit A
C3/A8C2:	AF164200	LDA $004216    ; Char index
C3/A8C6:	18      	CLC            ; Prepare ADC
C3/A8C7:	65EB    	ADC $EB        ; For SFC...
C3/A8C9:	A8      	TAY            ; Set ROM index
C3/A8CA:	E220    	SEP #$20       ; 8-bit A
C3/A8CC:	7B      	TDC            ; Clear A
C3/A8CD:	A58D    	LDA $8D        ; Textline width
C3/A8CF:	29F8    	AND #$F8       ; Drop WIP tile's
C3/A8D1:	C220    	REP #$20       ; 16-bit A
C3/A8D3:	0A      	ASL A          ; x2
C3/A8D4:	0A      	ASL A          ; x4
C3/A8D5:	18      	CLC            ; Prepare ADC
C3/A8D6:	65ED    	ADC $ED        ; Add VRAM index
C3/A8D8:	AA      	TAX            ; Set RAM index

Fork: Load 1bpp row graphics, shift to fit string
C3/A8D9:	DA      	PHX            ; Save RAM index
C3/A8DA:	C220    	REP #$20       ; 16-bit A
C3/A8DC:	BB      	TYX            ; ROM index
C3/A8DD:	BFC090C4	LDA $C490C0,X  ; 12-px row GFX
C3/A8E1:	64E7    	STZ $E7        ; Blank slice C
C3/A8E3:	64E9    	STZ $E9        ; Clear byte 4
C3/A8E5:	85E8    	STA $E8        ; Set slices A+B
C3/A8E7:	204FA9  	JSR $A94F      ; Shift pixels

Fork: Insert row segment C, copy as shadow below (2bpp)
C3/A8EA:	FA      	PLX            ; RAM index
C3/A8EB:	A5E7    	LDA $E7        ; Slices B and C
C3/A8ED:	E220    	SEP #$20       ; 8-bit A
C3/A8EF:	1FB9A27E	ORA $7EA2B9,X  ; Add WIP plane A
C3/A8F3:	9FB9A27E	STA $7EA2B9,X  ; Set WIP plane A
C3/A8F7:	C220    	REP #$20       ; 16-bit A
C3/A8F9:	4A      	LSR A          ; Shift 1 px right
C3/A8FA:	E220    	SEP #$20       ; 8-bit A
C3/A8FC:	1FBCA27E	ORA $7EA2BC,X  ; Add WIP plane B
C3/A900:	9FBCA27E	STA $7EA2BC,X  ; Set WIP plane B

Fork: Insert row segment B, copy as shadow below (2bpp)
C3/A904:	C220    	REP #$20       ; 16-bit A
C3/A906:	A5E8    	LDA $E8        ; Slices A and B
C3/A908:	E220    	SEP #$20       ; 8-bit A
C3/A90A:	1F99A27E	ORA $7EA299,X  ; Add WIP plane A
C3/A90E:	9F99A27E	STA $7EA299,X  ; Set WIP plane A
C3/A912:	C220    	REP #$20       ; 16-bit A
C3/A914:	4A      	LSR A          ; Shift 1 px right
C3/A915:	E220    	SEP #$20       ; 8-bit A
C3/A917:	1F9CA27E	ORA $7EA29C,X  ; Add WIP plane B
C3/A91B:	9F9CA27E	STA $7EA29C,X  ; Set WIP plane B

Fork: Insert row segment A, copy as shadow below (2bpp)
C3/A91F:	C220    	REP #$20       ; 16-bit A
C3/A921:	A5E8    	LDA $E8        ; Slices A and B
C3/A923:	E220    	SEP #$20       ; 8-bit A
C3/A925:	EB      	XBA            ; Get slice A
C3/A926:	1F79A27E	ORA $7EA279,X  ; Add WIP plane A
C3/A92A:	9F79A27E	STA $7EA279,X  ; Set WIP plane A
C3/A92E:	4A      	LSR A          ; Shift 1 px right
C3/A92F:	1F7CA27E	ORA $7EA27C,X  ; Add WIP plane B
C3/A933:	9F7CA27E	STA $7EA27C,X  ; Set WIP plane B

Fork: Handle next row
C3/A937:	E8      	INX            ; RAM index +1
C3/A938:	E8      	INX            ; RAM index +1
C3/A939:	C8      	INY            ; ROM index +1
C3/A93A:	C8      	INY            ; ROM index +1
C3/A93B:	C6E5    	DEC $E5        ; One less row
C3/A93D:	D09A    	BNE $A8D9      ; Loop till last

Fork: Add character's width to line total
C3/A93F:	7B      	TDC            ; Clear A
C3/A940:	68      	PLA            ; Text character
C3/A941:	18      	CLC            ; Prepare ADC
C3/A942:	6920    	ADC #$20       ; Use field format
C3/A944:	AA      	TAX            ; Index it
C3/A945:	A58D    	LDA $8D        ; Line width
C3/A947:	18      	CLC            ; Prepare ADC
C3/A948:	7FC08FC4	ADC $C48FC0,X  ; Add char width
C3/A94C:	858D    	STA $8D        ; Save changes
C3/A94E:	60      	RTS

Shift VWF character's row for string insertion
C3/A94F:	E220    	SEP #$20       ; 8-bit A
C3/A951:	7B      	TDC            ; Clear A
C3/A952:	A58D    	LDA $8D        ; Line width
C3/A954:	2907    	AND #$07       ; WIP tile's
C3/A956:	0A      	ASL A          ; Double it
C3/A957:	AA      	TAX            ; Index it
C3/A958:	C220    	REP #$20       ; 16-bit A
C3/A95A:	7C5DA9  	JMP ($A95D,X)  ; Shift row

Jump table for the above
C3/A95D:	6FA9    	; 0: 4 px left
C3/A95F:	73A9    	; 1: 3 px left
C3/A961:	77A9    	; 2: 2 px left
C3/A963:	7BA9    	; 3: 1 px left
C3/A965:	7FA9    	; 4: Unchanged
C3/A967:	8CA9    	; 5: 1 px right
C3/A969:	88A9    	; 6: 2 px right
C3/A96B:	84A9    	; 7: 3 px right
C3/A96D:	80A9    	; 8: 4 px right (unused)

Shift VWF character's row left for string insertion
C3/A96F:	06E7    	ASL $E7        ; Do slice B+C
C3/A971:	26E9    	ROL $E9        ; Do slice A
C3/A973:	06E7    	ASL $E7        ; Do slice B+C
C3/A975:	26E9    	ROL $E9        ; Do slice A
C3/A977:	06E7    	ASL $E7        ; Do slice B+C
C3/A979:	26E9    	ROL $E9        ; Do slice A
C3/A97B:	06E7    	ASL $E7        ; Do slice B+C
C3/A97D:	26E9    	ROL $E9        ; Do slice A
C3/A97F:	60      	RTS

Shift VWF character's row right for string insertion
C3/A980:	46E9    	LSR $E9        ; Do slice A
C3/A982:	66E7    	ROR $E7        ; Do slice B+C
C3/A984:	46E9    	LSR $E9        ; Do slice A
C3/A986:	66E7    	ROR $E7        ; Do slice B+C
C3/A988:	46E9    	LSR $E9        ; Do slice A
C3/A98A:	66E7    	ROR $E7        ; Do slice B+C
C3/A98C:	46E9    	LSR $E9        ; Do slice A
C3/A98E:	66E7    	ROR $E7        ; Do slice B+C
C3/A990:	60      	RTS

Set to upload VWF description, freeze CGRAM
C3/A991:	A00068  	LDY #$6800     ; $6800
C3/A994:	841B    	STY $1B        ; Set VRAM ptr
C3/A996:	A071A2  	LDY #$A271     ; 7E/A271
C3/A999:	841D    	STY $1D        ; Set src LBs
C3/A99B:	A00007  	LDY #$0700     ; Bytes: 1792
C3/A99E:	8419    	STY $19        ; Set data size
C3/A9A0:	A97E    	LDA #$7E       ; Bank: 7E
C3/A9A2:	851F    	STA $1F        ; Set src HB
C3/A9A4:	A901    	LDA #$01       ; CGRAM: Freeze
C3/A9A6:	1445    	TRB $45        ; Set NMI flag
C3/A9A8:	60      	RTS

Load and upload VWF graphics for all elements
C3/A9A9:	A600    	LDX $00        ; Elem index: 0
C3/A9AB:	BF0EE9D8	LDA $D8E90E,X  ; Elem text char
C3/A9AF:	9FC99E7E	STA $7E9EC9,X  ; Memorize it
C3/A9B3:	E8      	INX            ; Elem index +1
C3/A9B4:	E00900  	CPX #$0009     ; Terminator?
C3/A9B7:	D0F2    	BNE $A9AB      ; Loop if not
C3/A9B9:	A0006C  	LDY #$6C00     ; $6C00
C3/A9BC:	84F1    	STY $F1        ; Set VRAM ptr
C3/A9BE:	7B      	TDC            ; Clear A
C3/A9BF:	AA      	TAX            ; Elem index: 0
C3/A9C0:	BFC99E7E	LDA $7E9EC9,X  ; Elem text char
C3/A9C4:	F01C    	BEQ $A9E2      ; Exit if none
C3/A9C6:	20A9A8  	JSR $A8A9      ; Adjust value
C3/A9C9:	DA      	PHX            ; Save index
C3/A9CA:	20E5A9  	JSR $A9E5      ; Load graphics
C3/A9CD:	FA      	PLX            ; Elem index
C3/A9CE:	E8      	INX            ; Elem index +1
C3/A9CF:	A4F1    	LDY $F1        ; VRAM pointer
C3/A9D1:	20F6A5  	JSR $A5F6      ; Upload graphics
C3/A9D4:	C220    	REP #$20       ; 16-bit A
C3/A9D6:	A5F1    	LDA $F1        ; VRAM pointer
C3/A9D8:	18      	CLC            ; Prepare ADC
C3/A9D9:	692000  	ADC #$0020     ; Skip 4 tiles
C3/A9DC:	85F1    	STA $F1        ; Save changes
C3/A9DE:	E220    	SEP #$20       ; 8-bit A
C3/A9E0:	80DE    	BRA $A9C0      ; Do next element
C3/A9E2:	4C890F  	JMP $0F89      ; Dequeue upload

Load element's graphics (VWF)
C3/A9E5:	48      	PHA            ; Save text char
C3/A9E6:	A04000  	LDY #$0040     ; Bytes: 64
C3/A9E9:	84F3    	STY $F3        ; Set buffer size
C3/A9EB:	2037B4  	JSR $B437      ; Clear GFX buffer
C3/A9EE:	648D    	STZ $8D        ; String width: 0
C3/A9F0:	64ED    	STZ $ED        ; VRAM index LB: 0
C3/A9F2:	64EE    	STZ $EE        ; VRAM index HB: 0
C3/A9F4:	68      	PLA            ; Elem text char
C3/A9F5:	4CB1A8  	JMP $A8B1      ; Load graphics

73: Initialize final battle lineup
C3/A9F8:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/A9FB:	200469  	JSR $6904      ; Reset BGs' X/Y
C3/A9FE:	A902    	LDA #$02       ; Main cursor: On
C3/AA00:	8546    	STA $46        ; Bar/Blinker: Off
C3/AA02:	2054AC  	JSR $AC54      ; Load navig data
C3/AA05:	205DAC  	JSR $AC5D      ; Relocate cursor
C3/AA08:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/AA0B:	20EEAA  	JSR $AAEE      ; Clear candidates
C3/AA0E:	20FDAA  	JSR $AAFD      ; Reset user's list
C3/AA11:	2013AB  	JSR $AB13      ; Draw menu
C3/AA14:	209794  	JSR $9497      ; Set to shift text
C3/AA17:	A974    	LDA #$74       ; C3/AA25
C3/AA19:	8527    	STA $27        ; Queue: Sustain menu
C3/AA1B:	A901    	LDA #$01       ; C3/1D7E
C3/AA1D:	8526    	STA $26        ; Next: Fade-in
C3/AA1F:	20FD0E  	JSR $0EFD      ; Queue text upload
C3/AA22:	4C4135  	JMP $3541      ; BRT:1 + NMI

74: Sustain final battle lineup
C3/AA25:	2089AB  	JSR $AB89      ; Redraw candidates
C3/AA28:	20B4AB  	JSR $ABB4      ; Redraw user's list
C3/AA2B:	205AAC  	JSR $AC5A      ; Handle D-Pad
C3/AA2E:	20FD0E  	JSR $0EFD      ; Queue text upload

Fork: Handle B
C3/AA31:	A509    	LDA $09        ; No-autofire keys
C3/AA33:	8980    	BIT #$80       ; Pushing B?
C3/AA35:	F02C    	BEQ $AA63      ; Branch if not
C3/AA37:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/AA3A:	A54A    	LDA $4A        ; R-List's empty?
C3/AA3C:	F068    	BEQ $AAA6      ; Exit if so
C3/AA3E:	C64A    	DEC $4A        ; R-List size -1
C3/AA40:	7B      	TDC            ; Clear A
C3/AA41:	A54A    	LDA $4A        ; R-List size
C3/AA43:	AA      	TAX            ; Index it
C3/AA44:	BD0502  	LDA $0205,X    ; Last R-List char
C3/AA47:	48      	PHA            ; Save this actor
C3/AA48:	A9FF    	LDA #$FF       ; Actor: None
C3/AA4A:	9D0502  	STA $0205,X    ; Clear R-List slot
C3/AA4D:	A600    	LDX $00        ; L-List slot: 1
C3/AA4F:	68      	PLA            ; Removed actor
C3/AA50:	DF8A9D7E	CMP $7E9D8A,X  ; In L-List slot?
C3/AA54:	F006    	BEQ $AA5C      ; Enable it if so
C3/AA56:	E8      	INX            ; L-List slot +1
C3/AA57:	E00C00  	CPX #$000C     ; Done all 12?
C3/AA5A:	D0F4    	BNE $AA50      ; Loop if not
C3/AA5C:	A920    	LDA #$20       ; Color: User's
C3/AA5E:	9F8DAA7E	STA $7EAA8D,X  ; Set L-List name's
C3/AA62:	60      	RTS

Fork: Handle actor selection
C3/AA63:	A509    	LDA $09        ; No-autofire keys
C3/AA65:	8910    	BIT #$10       ; Pushing Start?
C3/AA67:	D030    	BNE $AA99      ; Branch if so
C3/AA69:	A508    	LDA $08        ; No-autofire keys
C3/AA6B:	8980    	BIT #$80       ; Pushing A?
C3/AA6D:	F037    	BEQ $AAA6      ; Exit if not
C3/AA6F:	20B20E  	JSR $0EB2      ; Sound: Click
C3/AA72:	7B      	TDC            ; Clear A
C3/AA73:	A54B    	LDA $4B        ; On Reset?
C3/AA75:	F030    	BEQ $AAA7      ; Branch if so
C3/AA77:	C90D    	CMP #$0D       ; On "End"?
C3/AA79:	F01E    	BEQ $AA99      ; Branch if so
C3/AA7B:	AA      	TAX            ; Clicked slot
C3/AA7C:	BF899D7E	LDA $7E9D89,X  ; Nobody there?
C3/AA80:	3024    	BMI $AAA6      ; Exit if so
C3/AA82:	7B      	TDC            ; ...
C3/AA83:	A54B    	LDA $4B        ; Clicked slot
C3/AA85:	3A      	DEC A          ; Now 0-12
C3/AA86:	AA      	TAX            ; Index it
C3/AA87:	BF8DAA7E	LDA $7EAA8D,X  ; Name color
C3/AA8B:	C920    	CMP #$20       ; Player's?
C3/AA8D:	D017    	BNE $AAA6      ; Exit if not
C3/AA8F:	20B2AA  	JSR $AAB2      ; Add chosen char
C3/AA92:	A54A    	LDA $4A        ; Selection count
C3/AA94:	C90C    	CMP #$0C       ; Added 12 actors?
C3/AA96:	F015    	BEQ $AAAD      ; Go to End if so
C3/AA98:	60      	RTS

Fork: Handle "End"
C3/AA99:	20B20E  	JSR $0EB2      ; Sound: Click
C3/AA9C:	20CAAA  	JSR $AACA      ; Auto-fill list
C3/AA9F:	A9FF    	LDA #$FF       ; Null value
C3/AAA1:	8527    	STA $27        ; Queue menu exit
C3/AAA3:	6426    	STZ $26        ; Next: Fade-out
C3/AAA5:	60      	RTS            ; ...
C3/AAA6:	60      	RTS

Fork: Handle "Reset"
C3/AAA7:	20FDAA  	JSR $AAFD      ; Reset user's list
C3/AAAA:	E64E    	INC $4E        ; Move cursor down
C3/AAAC:	60      	RTS

Fork: Put cursor on "End"
C3/AAAD:	A90D    	LDA #$0D       ; Row: 14th
C3/AAAF:	854E    	STA $4E        ; Set cursor's
C3/AAB1:	60      	RTS

Add chosen actor to player's list for final battle
C3/AAB2:	7B      	TDC            ; ...
C3/AAB3:	A54A    	LDA $4A        ; Slot to fill
C3/AAB5:	A8      	TAY            ; Index it
C3/AAB6:	A54B    	LDA $4B        ; Clicked slot
C3/AAB8:	AA      	TAX            ; Index it
C3/AAB9:	A928    	LDA #$28       ; Color: Gray
C3/AABB:	9F8CAA7E	STA $7EAA8C,X  ; Set L-Name's
C3/AABF:	BF899D7E	LDA $7E9D89,X  ; Chosen actor
C3/AAC3:	BB      	TYX            ; ...
C3/AAC4:	9D0502  	STA $0205,X    ; To user's list
C3/AAC7:	E64A    	INC $4A        ; R-List size +1
C3/AAC9:	60      	RTS

Complete player's actor list for final battle
C3/AACA:	A54A    	LDA $4A        ; R-List size
C3/AACC:	C90C    	CMP #$0C       ; 12 actors?
C3/AACE:	F01D    	BEQ $AAED      ; Exit if so
C3/AAD0:	7B      	TDC            ; Clear A
C3/AAD1:	AA      	TAX            ; L-List slot: 1
C3/AAD2:	BF8DAA7E	LDA $7EAA8D,X  ; Name color
C3/AAD6:	C920    	CMP #$20       ; Player's?
C3/AAD8:	D00D    	BNE $AAE7      ; Skip if not
C3/AADA:	7B      	TDC            ; ...
C3/AADB:	A54A    	LDA $4A        ; R-List slot
C3/AADD:	A8      	TAY            ; Index it
C3/AADE:	BF8A9D7E	LDA $7E9D8A,X  ; L-List actor
C3/AAE2:	990502  	STA $0205,Y    ; Add to list
C3/AAE5:	E64A    	INC $4A        ; R-List slot +1
C3/AAE7:	E8      	INX            ; L-List slot +1
C3/AAE8:	E00C00  	CPX #$000C     ; Done all 12?
C3/AAEB:	D0E5    	BNE $AAD2      ; Loop if not
C3/AAED:	60      	RTS

Clear candidate list for final battle (four unused slots)
C3/AAEE:	7B      	TDC            ; Clear A
C3/AAEF:	AA      	TAX            ; List slot: 1
C3/AAF0:	A9FF    	LDA #$FF       ; Actor: None
C3/AAF2:	9F899D7E	STA $7E9D89,X  ; Clear slot
C3/AAF6:	E8      	INX            ; List slot +1
C3/AAF7:	E01000  	CPX #$0010     ; Done 16?...
C3/AAFA:	D0F4    	BNE $AAF0      ; Loop if not
C3/AAFC:	60      	RTS

Reset player's actor list for final battle
C3/AAFD:	7B      	TDC            ; Clear A
C3/AAFE:	AA      	TAX            ; List slot: 1
C3/AAFF:	A9FF    	LDA #$FF       ; Actor: None
C3/AB01:	9D0502  	STA $0205,X    ; Put in slot
C3/AB04:	A920    	LDA #$20       ; Color: User's
C3/AB06:	9F8DAA7E	STA $7EAA8D,X  ; Set name color
C3/AB0A:	E8      	INX            ; List slot +1
C3/AB0B:	E00C00  	CPX #$000C     ; Done all 12?
C3/AB0E:	D0EF    	BNE $AAFF      ; Loop if not
C3/AB10:	644A    	STZ $4A        ; List size: 0
C3/AB12:	60      	RTS

Draw menu for final battle
C3/AB13:	A902    	LDA #$02       ; 32x64 at $0000
C3/AB15:	8D0721  	STA $2107      ; Set BG1 map loc
C3/AB18:	A049AB  	LDY #$AB49     ; C3/AB49
C3/AB1B:	204103  	JSR $0341      ; Draw window
C3/AB1E:	20520E  	JSR $0E52      ; Upload window
C3/AB21:	203C6A  	JSR $6A3C      ; Clear BG3 map A
C3/AB24:	206E0E  	JSR $0E6E      ; Upload BG3 A+B
C3/AB27:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/AB2A:	20196A  	JSR $6A19      ; Clear BG1 map B
C3/AB2D:	A920    	LDA #$20       ; Palette 0
C3/AB2F:	8529    	STA $29        ; Color: User's
C3/AB31:	A284AC  	LDX #$AC84     ; Text ptrs loc
C3/AB34:	A00600  	LDY #$0006     ; Strings: 3
C3/AB37:	20BA69  	JSR $69BA      ; Draw End, etc.
C3/AB3A:	2019AC  	JSR $AC19      ; Draw numbers
C3/AB3D:	204DAB  	JSR $AB4D      ; List candidates
C3/AB40:	2089AB  	JSR $AB89      ; Draw candidates
C3/AB43:	20280E  	JSR $0E28      ; Upload text
C3/AB46:	4C360E  	JMP $0E36      ; Upload BG1c...

Window layout for final battle lineup
C3/AB49:	8B581C18	; 30x26 at $588B

Compile candidates for final battle
C3/AB4D:	64E6    	STZ $E6        ; List slot: 1
C3/AB4F:	7B      	TDC            ; Clear A
C3/AB50:	AA      	TAX            ; 1st: Terra
C3/AB51:	DA      	PHX            ; Save actor
C3/AB52:	BD5018  	LDA $1850,X    ; Party info
C3/AB55:	2940    	AND #$40       ; Object's off?
C3/AB57:	F028    	BEQ $AB81      ; Skip if so
C3/AB59:	BD5018  	LDA $1850,X    ; Party info
C3/AB5C:	2907    	AND #$07       ; In a party?
C3/AB5E:	F021    	BEQ $AB81      ; Skip if not
C3/AB60:	86E7    	STX $E7        ; Save actor
C3/AB62:	C220    	REP #$20       ; 16-bit A
C3/AB64:	8A      	TXA            ; Actor slot
C3/AB65:	0A      	ASL A          ; Double it
C3/AB66:	AA      	TAX            ; Index it
C3/AB67:	BF6969C3	LDA $C36969,X  ; Actor address
C3/AB6B:	A8      	TAY            ; Index it
C3/AB6C:	E220    	SEP #$20       ; 8-bit A
C3/AB6E:	B90000  	LDA $0000,Y    ; Actor in slot
C3/AB71:	C90E    	CMP #$0E       ; Guest?
C3/AB73:	B00C    	BCS $AB81      ; Skip if so
C3/AB75:	7B      	TDC            ; Clear A
C3/AB76:	A5E6    	LDA $E6        ; List slot
C3/AB78:	AA      	TAX            ; Index it
C3/AB79:	A5E7    	LDA $E7        ; Actor slot
C3/AB7B:	9F8A9D7E	STA $7E9D8A,X  ; Add to list
C3/AB7F:	E6E6    	INC $E6        ; List slot +1
C3/AB81:	FA      	PLX            ; Actor slot
C3/AB82:	E8      	INX            ; Actor slot +1
C3/AB83:	E01000  	CPX #$0010     ; Done all 16?
C3/AB86:	D0C9    	BNE $AB51      ; Loop if not
C3/AB88:	60      	RTS

Draw list of candidates for final battle
C3/AB89:	A0153A  	LDY #$3A15     ; Tilemap ptr
C3/AB8C:	84F5    	STY $F5        ; Set position
C3/AB8E:	7B      	TDC            ; Clear A
C3/AB8F:	AA      	TAX            ; List slot: 1
C3/AB90:	20DCAB  	JSR $ABDC      ; Set pos, WRAM
C3/AB93:	DA      	PHX            ; Save list slot
C3/AB94:	7B      	TDC            ; Clear A
C3/AB95:	BF8DAA7E	LDA $7EAA8D,X  ; Name palette
C3/AB99:	8529    	STA $29        ; Set attributes
C3/AB9B:	BF8A9D7E	LDA $7E9D8A,X  ; Actor in slot
C3/AB9F:	3005    	BMI $ABA6      ; Blank if none
C3/ABA1:	20F0AB  	JSR $ABF0      ; Draw name
C3/ABA4:	8003    	BRA $ABA9      ; Skip a line
C3/ABA6:	200BAC  	JSR $AC0B      ; Blank slot
C3/ABA9:	20FEAB  	JSR $ABFE      ; VRAM row +2
C3/ABAC:	FA      	PLX            ; List slot
C3/ABAD:	E8      	INX            ; List slot +1
C3/ABAE:	E00C00  	CPX #$000C     ; Done all 12?
C3/ABB1:	D0DD    	BNE $AB90      ; Loop if not
C3/ABB3:	60      	RTS

Draw player's actor list for final battle
C3/ABB4:	A920    	LDA #$20       ; Palette 0
C3/ABB6:	8529    	STA $29        ; Color: User's
C3/ABB8:	A0313A  	LDY #$3A31     ; Tilemap ptr
C3/ABBB:	84F5    	STY $F5        ; Set position
C3/ABBD:	7B      	TDC            ; Clear A
C3/ABBE:	AA      	TAX            ; List slot: 1
C3/ABBF:	20DCAB  	JSR $ABDC      ; Set pos, WRAM
C3/ABC2:	DA      	PHX            ; Save list slot
C3/ABC3:	7B      	TDC            ; Clear A
C3/ABC4:	BD0502  	LDA $0205,X    ; Actor in slot
C3/ABC7:	3005    	BMI $ABCE      ; Blank if none
C3/ABC9:	20F0AB  	JSR $ABF0      ; Draw name
C3/ABCC:	8003    	BRA $ABD1      ; Skip a line
C3/ABCE:	200BAC  	JSR $AC0B      ; Blank slot
C3/ABD1:	20FEAB  	JSR $ABFE      ; VRAM row +2
C3/ABD4:	FA      	PLX            ; List slot
C3/ABD5:	E8      	INX            ; List slot +1
C3/ABD6:	E00C00  	CPX #$000C     ; Done all 12?
C3/ABD9:	D0E4    	BNE $ABBF      ; Loop if not
C3/ABDB:	60      	RTS

Prepare actor name drawing for final battle lineup
C3/ABDC:	A0899E  	LDY #$9E89     ; 7E/9E89
C3/ABDF:	8C8121  	STY $2181      ; Set WRAM LBs
C3/ABE2:	C220    	REP #$20       ; 16-bit A
C3/ABE4:	A5F5    	LDA $F5        ; Tilemap ptr
C3/ABE6:	E220    	SEP #$20       ; 8-bit A
C3/ABE8:	8D8021  	STA $2180      ; Set position LB
C3/ABEB:	EB      	XBA            ; Switch to HB
C3/ABEC:	8D8021  	STA $2180      ; Set position HB
C3/ABEF:	60      	RTS

Draw actor's name for final battle lineup
C3/ABF0:	0A      	ASL A          ; Actor x2
C3/ABF1:	C220    	REP #$20       ; 16-bit A
C3/ABF3:	AA      	TAX            ; Index it
C3/ABF4:	BF6969C3	LDA $C36969,X  ; Actor address
C3/ABF8:	A8      	TAY            ; Index it
C3/ABF9:	E220    	SEP #$20       ; 8-bit A
C3/ABFB:	4CD234  	JMP $34D2      ; Draw name

Point two rows down in tilemap
C3/ABFE:	C220    	REP #$20       ; 16-bit A
C3/AC00:	A5F5    	LDA $F5        ; Tilemap ptr
C3/AC02:	18      	CLC            ; Prepare ADC
C3/AC03:	698000  	ADC #$0080     ; +2 rows down
C3/AC06:	85F5    	STA $F5        ; Save changes
C3/AC08:	E220    	SEP #$20       ; 8-bit A
C3/AC0A:	60      	RTS

Blank actor name slot
C3/AC0B:	A20600  	LDX #$0006     ; Spaces: 6
C3/AC0E:	A9FF    	LDA #$FF       ; Space char
C3/AC10:	8D8021  	STA $2180      ; Add to string
C3/AC13:	CA      	DEX            ; One less left
C3/AC14:	D0FA    	BNE $AC10      ; Loop till last
C3/AC16:	4CD97F  	JMP $7FD9      ; Draw 6 spaces

Draw both lists of numbers for final battle lineup
C3/AC19:	A901    	LDA #$01       ; Number: "1"
C3/AC1B:	85E6    	STA $E6        ; Set as current
C3/AC1D:	A00F3A  	LDY #$3A0F     ; Tilemap ptr
C3/AC20:	84F5    	STY $F5        ; Set position
C3/AC22:	A20C00  	LDX #$000C     ; Numbers: 12
C3/AC25:	86F1    	STX $F1        ; Set counter
C3/AC27:	203BAC  	JSR $AC3B      ; Draw left list
C3/AC2A:	A901    	LDA #$01       ; Number: "1"
C3/AC2C:	85E6    	STA $E6        ; Set as current
C3/AC2E:	A02B3A  	LDY #$3A2B     ; Tilemap ptr
C3/AC31:	84F5    	STY $F5        ; Set position
C3/AC33:	A20C00  	LDX #$000C     ; Numbers: 12
C3/AC36:	86F1    	STX $F1        ; Set counter
C3/AC38:	4C3BAC  	JMP $AC3B      ; Draw right list

Draw current list of numbers for final battle lineup
C3/AC3B:	7B      	TDC            ; Clear A
C3/AC3C:	AA      	TAX            ; Numbers done: 0
C3/AC3D:	DA      	PHX            ; Save counter
C3/AC3E:	A5E6    	LDA $E6        ; Current number
C3/AC40:	20E004  	JSR $04E0      ; Turn into text
C3/AC43:	A6F5    	LDX $F5        ; Text position
C3/AC45:	20B604  	JSR $04B6      ; Draw 2 digits
C3/AC48:	E6E6    	INC $E6        ; Number +1
C3/AC4A:	20FEAB  	JSR $ABFE      ; VRAM row +2
C3/AC4D:	FA      	PLX            ; Numbers done
C3/AC4E:	E8      	INX            ; Numbers done +1
C3/AC4F:	E4F1    	CPX $F1        ; Done all 12?
C3/AC51:	D0EA    	BNE $AC3D      ; Loop if not
C3/AC53:	60      	RTS

Load navigation data for final battle lineup
C3/AC54:	A063AC  	LDY #$AC63     ; C3/AC63
C3/AC57:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for final battle lineup
C3/AC5A:	202D07  	JSR $072D      ; Handle D-Pad
C3/AC5D:	A068AC  	LDY #$AC68     ; C3/AC68
C3/AC60:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for final battle lineup
C3/AC63:	80      	; Wraps vertically
C3/AC64:	00      	; Initial column
C3/AC65:	00      	; Initial row
C3/AC66:	01      	; 1 column
C3/AC67:	0E      	; 14 rows

Cursor positions for final battle lineup
C3/AC68:	1020    	; Reset
C3/AC6A:	202C    	; Actor 1
C3/AC6C:	2038    	; Actor 2
C3/AC6E:	2044    	; Actor 3
C3/AC70:	2050    	; Actor 4
C3/AC72:	205C    	; Actor 5
C3/AC74:	2068    	; Actor 6
C3/AC76:	2074    	; Actor 7
C3/AC78:	2080    	; Actor 8
C3/AC7A:	208C    	; Actor 9
C3/AC7C:	2098    	; Actor 10
C3/AC7E:	20A4    	; Actor 11
C3/AC80:	20B0    	; Actor 12
C3/AC82:	10BC    	; End

Text pointers for final battle lineup
C3/AC84:	8AAC    	; End
C3/AC86:	90AC    	; Reset
C3/AC88:	98AC    	; Determine order

Positioned text for final battle lineup
C3/AC8A:	1140 84A79D00                  ; End
C3/AC90:	9139 919EAC9EAD00              ; Reset
C3/AC98:	1D39 839EAD9EABA6A2A79EFF      ; Determine order
        	     A8AB9D9EAB00

71: Initialize Colosseum item menu
C3/ACAA:	9C0102  	STZ $0201      ; Face Shadow: No
C3/ACAD:	AD0502  	LDA $0205      ; Empty item...
C3/ACB0:	205E9D  	JSR $9D5E      ; Add to stock...
C3/ACB3:	20E21A  	JSR $1AE2      ; Init list vars
C3/ACB6:	20257D  	JSR $7D25      ; Relocate cursor
C3/ACB9:	2027AD  	JSR $AD27      ; Draw/Upload menu
C3/ACBC:	7B      	TDC            ; Gradient set: 0
C3/ACBD:	221DCAD4	JSL $D4CA1D    ; Create gradient
C3/ACC1:	200E1B  	JSR $1B0E      ; Shift & OBJ & Fade
C3/ACC4:	20993F  	JSR $3F99      ; Apply user font
C3/ACC7:	A901    	LDA #$01       ; CGRAM: Refresh
C3/ACC9:	0445    	TSB $45        ; Set NMI flag
C3/ACCB:	206813  	JSR $1368      ; Refresh screen
C3/ACCE:	A972    	LDA #$72       ; C3/ACDC
C3/ACD0:	8527    	STA $27        ; Queue: Sustain menu
C3/ACD2:	A902    	LDA #$02       ; Main cursor: On
C3/ACD4:	8546    	STA $46        ; Bar/Blinker: Off
C3/ACD6:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/ACD9:	4C4135  	JMP $3541      ; BRT:1 + NMI

72: Sustain Colosseum item menu
C3/ACDC:	A910    	LDA #$10       ; Description: On
C3/ACDE:	1445    	TRB $45        ; Set menu flag
C3/ACE0:	642A    	STZ $2A        ; List type: Stock
C3/ACE2:	20FD0E  	JSR $0EFD      ; Queue list upload
C3/ACE5:	20641F  	JSR $1F64      ; Handle L and R
C3/ACE8:	B03C    	BCS $AD26      ; Exit if pushed
C3/ACEA:	20227D  	JSR $7D22      ; Handle D-Pad
C3/ACED:	20F182  	JSR $82F1      ; Load description

Fork: Handle A
C3/ACF0:	A508    	LDA $08        ; No-autofire keys
C3/ACF2:	8980    	BIT #$80       ; Pushing A?
C3/ACF4:	F01E    	BEQ $AD14      ; Branch if not
C3/ACF6:	7B      	TDC            ; Clear A
C3/ACF7:	A54B    	LDA $4B        ; Selected slot
C3/ACF9:	AA      	TAX            ; Index it
C3/ACFA:	BD6918  	LDA $1869,X    ; Item in slot
C3/ACFD:	C9FF    	CMP #$FF       ; None?
C3/ACFF:	F00D    	BEQ $AD0E      ; Fail if so
C3/AD01:	8D0502  	STA $0205      ; Set item bet
C3/AD04:	20B20E  	JSR $0EB2      ; Sound: Click
C3/AD07:	A975    	LDA #$75       ; C3/ADB7
C3/AD09:	8527    	STA $27        ; Queue: Matchup
C3/AD0B:	6426    	STZ $26        ; Next: Fade-out
C3/AD0D:	60      	RTS

Fork: Invalid selection
C3/AD0E:	20C00E  	JSR $0EC0      ; Play buzzer
C3/AD11:	205D30  	JSR $305D      ; Pixelate screen

Fork: Handle B
C3/AD14:	A509    	LDA $09        ; No-autofire keys
C3/AD16:	8980    	BIT #$80       ; Pushing B?
C3/AD18:	F00C    	BEQ $AD26      ; Exit if not
C3/AD1A:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/AD1D:	A9FF    	LDA #$FF       ; Empty item
C3/AD1F:	8D0502  	STA $0205      ; Clear item bet
C3/AD22:	8527    	STA $27        ; Queue menu exit
C3/AD24:	6426    	STZ $26        ; Next: Fade-out
C3/AD26:	60      	RTS

Draw and upload Colosseum item menu
C3/AD27:	A901    	LDA #$01       ; 64x32 at $0000
C3/AD29:	8D0721  	STA $2107      ; Set BG1 map loc
C3/AD2C:	A08EAD  	LDY #$AD8E     ; C3/AD8E
C3/AD2F:	204103  	JSR $0341      ; Draw message box
C3/AD32:	A08AAD  	LDY #$AD8A     ; C3/AD8A
C3/AD35:	204103  	JSR $0341      ; Draw title box
C3/AD38:	A092AD  	LDY #$AD92     ; C3/AD92
C3/AD3B:	204103  	JSR $0341      ; Draw desc box
C3/AD3E:	A096AD  	LDY #$AD96     ; C3/AD96
C3/AD41:	204103  	JSR $0341      ; Draw item box
C3/AD44:	20520E  	JSR $0E52      ; Upload windows
C3/AD47:	20416A  	JSR $6A41      ; Clear BG3 map B
C3/AD4A:	20466A  	JSR $6A46      ; Clear BG3 map C
C3/AD4D:	204B6A  	JSR $6A4B      ; Clear BG3 map D
C3/AD50:	206EAD  	JSR $AD6E      ; Draw title, etc.
C3/AD53:	2080AD  	JSR $AD80      ; Draw desc/"Select"
C3/AD56:	20A9A9  	JSR $A9A9      ; Upload elements...
C3/AD59:	206E0E  	JSR $0E6E      ; Upload BG3 A+B
C3/AD5C:	207C0E  	JSR $0E7C      ; Upload BG3 C+D
C3/AD5F:	20196A  	JSR $6A19      ; Clear BG1 map B
C3/AD62:	200D7E  	JSR $7E0D      ; Draw inventory
C3/AD65:	20F182  	JSR $82F1      ; Load description
C3/AD68:	20280E  	JSR $0E28      ; Upload BG1 A+B
C3/AD6B:	4C360E  	JMP $0E36      ; Upload BG1 C...

Draw Colosseum menu title, clear tilemap beforehand
C3/AD6E:	203C6A  	JSR $6A3C      ; Clear BG3 map A
C3/AD71:	A92C    	LDA #$2C       ; Palette 3
C3/AD73:	8529    	STA $29        ; Color: Blue
C3/AD75:	A09AAD  	LDY #$AD9A     ; Text pointer
C3/AD78:	20F902  	JSR $02F9      ; Draw "Colosseum"
C3/AD7B:	A920    	LDA #$20       ; Palette 0
C3/AD7D:	8529    	STA $29        ; Color: User's
C3/AD7F:	60      	RTS            ; ^ For "Select..."

Build BG3 tilemap for Colosseum item menu, excluding title
C3/AD80:	203DA7  	JSR $A73D      ; Build desc map
C3/AD83:	A0A6AD  	LDY #$ADA6     ; Text pointer
C3/AD86:	20F902  	JSR $02F9      ; Draw "Select..."
C3/AD89:	60      	RTS

Window layout for Colosseum item menu
C3/AD8A:	8B580902	; 11x04 at $588B (Title)
C3/AD8E:	A1581102	; 19x04 at $58A1 ("Select...")
C3/AD92:	8B591C03	; 30x05 at $598B (Description)
C3/AD96:	CB5A1C0F	; 30x17 at $5ACB (Items)

Positioned text for Colosseum, "Colosseum"
C3/AD9A:	0D79 82A8A5A8ACAC9EAEA600

Positioned text for Colosseum, "Select an Item"
C3/ADA6:	2379 929EA59E9CADFF9AA7FF88AD9EA600

75: Initialize Colosseum matchup menu
C3/ADB7:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/ADBA:	6443    	STZ $43        ; Disable HDMA
C3/ADBC:	20873A  	JSR $3A87      ; Load skin visuals
C3/ADBF:	201569  	JSR $6915      ; Get party info
C3/ADC2:	A902    	LDA #$02       ; Gradient set: 2
C3/ADC4:	221DCAD4	JSL $D4CA1D    ; Create gradient
C3/ADC8:	20DC69  	JSR $69DC      ; Queue Win1 HDMA
C3/ADCB:	20666A  	JSR $6A66      ; Load GFX/pal/prize
C3/ADCE:	A902    	LDA #$02       ; Main cursor: On
C3/ADD0:	8546    	STA $46        ; Bar/Blinker: Off
C3/ADD2:	2023B3  	JSR $B323      ; Load navig data
C3/ADD5:	202CB3  	JSR $B32C      ; Relocate cursor
C3/ADD8:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/ADDB:	2007AE  	JSR $AE07      ; Queue "VS" OAM
C3/ADDE:	20D118  	JSR $18D1      ; Set to shift text
C3/ADE1:	2034AE  	JSR $AE34      ; Draw menu; members
C3/ADE4:	A901    	LDA #$01       ; CGRAM: Refresh
C3/ADE6:	0445    	TSB $45        ; Set NMI flag
C3/ADE8:	20993F  	JSR $3F99      ; Apply user font
C3/ADEB:	A901    	LDA #$01       ; Min slot: 8
C3/ADED:	A0A5B2  	LDY #$B2A5     ; C3/B2A5
C3/ADF0:	207311  	JSR $1173      ; Queue challenger fn
C3/ADF3:	A976    	LDA #$76       ; C3/AE0F
C3/ADF5:	8527    	STA $27        ; Queue: Sustain menu
C3/ADF7:	A901    	LDA #$01       ; C3/1D7E
C3/ADF9:	8526    	STA $26        ; Next: Fade-in
C3/ADFB:	200469  	JSR $6904      ; Reset BGs' X/Y
C3/ADFE:	20FD0E  	JSR $0EFD      ; Queue enemy upload
C3/AE01:	204135  	JSR $3541      ; BRT:1 + NMI
C3/AE04:	4C390F  	JMP $0F39      ; Queue text upload

Queue OAM function for "VS" symbol
C3/AE07:	A901    	LDA #$01       ; Min slot: 8
C3/AE09:	A0F3B2  	LDY #$B2F3     ; C3/B2F3
C3/AE0C:	4C7311  	JMP $1173      ; Queue OAM fn

76: Sustain Colosseum matchup menu
C3/AE0F:	20390F  	JSR $0F39      ; Queue text upload
C3/AE12:	2029B3  	JSR $B329      ; Handle D-Pad
C3/AE15:	A508    	LDA $08        ; No-autofire keys
C3/AE17:	8980    	BIT #$80       ; Pushing A?
C3/AE19:	F018    	BEQ $AE33      ; Exit if not
C3/AE1B:	20ECB2  	JSR $B2EC      ; Actor in slot
C3/AE1E:	300D    	BMI $AE2D      ; Fail if nobody
C3/AE20:	8D0802  	STA $0208      ; Set challenger
C3/AE23:	20B20E  	JSR $0EB2      ; Sound: Click
C3/AE26:	A9FF    	LDA #$FF       ; Null value
C3/AE28:	8527    	STA $27        ; Queue menu exit
C3/AE2A:	6426    	STZ $26        ; Next: Fade-out
C3/AE2C:	60      	RTS            ; Exit
C3/AE2D:	20C00E  	JSR $0EC0      ; Play buzzer
C3/AE30:	205D30  	JSR $305D      ; Pixelate screen
C3/AE33:	60      	RTS

Draw Colosseum matchup menu and create members
C3/AE34:	A901    	LDA #$01       ; 64x32 at $0000
C3/AE36:	8D0721  	STA $2107      ; Set BG1 map loc
C3/AE39:	A03FB3  	LDY #$B33F     ; C3/B33F
C3/AE3C:	204103  	JSR $0341      ; Draw prize window
C3/AE3F:	A043B3  	LDY #$B343     ; C3/B343
C3/AE42:	204103  	JSR $0341      ; Draw bet window
C3/AE45:	A047B3  	LDY #$B347     ; C3/B347
C3/AE48:	204103  	JSR $0341      ; Draw party window
C3/AE4B:	20520E  	JSR $0E52      ; Upload windows
C3/AE4E:	203C6A  	JSR $6A3C      ; Clear BG3 map A
C3/AE51:	A920    	LDA #$20       ; Palette 0
C3/AE53:	8529    	STA $29        ; Color: User's
C3/AE55:	207DB1  	JSR $B17D      ; Create member 1
C3/AE58:	2097B1  	JSR $B197      ; Create member 2
C3/AE5B:	20B1B1  	JSR $B1B1      ; Create member 3
C3/AE5E:	20CBB1  	JSR $B1CB      ; Create member 4
C3/AE61:	A00FB4  	LDY #$B40F     ; Text pointer
C3/AE64:	20F902  	JSR $02F9      ; Draw "Select..."
C3/AE67:	208DB2  	JSR $B28D      ; Draw enemy name
C3/AE6A:	204DB2  	JSR $B24D      ; Draw item bet
C3/AE6D:	2055B2  	JSR $B255      ; Draw prize
C3/AE70:	206E0E  	JSR $0E6E      ; Upload BG3 A+B
C3/AE73:	A00050  	LDY #$5000     ; $5000
C3/AE76:	8C1621  	STY $2116      ; Set VRAM ptr
C3/AE79:	200AB1  	JSR $B10A      ; Blank BG1 tile 1
C3/AE7C:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/AE7F:	2093AE  	JSR $AE93      ; Handle Striker
C3/AE82:	AD0102  	LDA $0201      ; Facing Shadow?
C3/AE85:	D006    	BNE $AE8D      ; Branch if so
C3/AE87:	2000AF  	JSR $AF00      ; Draw monster
C3/AE8A:	4C280E  	JMP $0E28      ; Upload BG1 A+B

Fork: Fighting Shadow
C3/AE8D:	20A7AE  	JSR $AEA7      ; Do name/sprite
C3/AE90:	4C280E  	JMP $0E28      ; Upload BG1 A+B

Check if betting Striker
C3/AE93:	AD0502  	LDA $0205      ; Item bet
C3/AE96:	C929    	CMP #$29       ; Striker?
C3/AE98:	D00C    	BNE $AEA6      ; Exit if not
C3/AE9A:	ADBD1E  	LDA $1EBD      ; Event flags
C3/AE9D:	2980    	AND #$80       ; Shadow at arena?
C3/AE9F:	F005    	BEQ $AEA6      ; Exit if not
C3/AEA1:	A901    	LDA #$01       ; Facing Shadow: Y
C3/AEA3:	8D0102  	STA $0201      ; Set arena's mode
C3/AEA6:	60      	RTS

Create Shadow's name and sprite for Colosseum
C3/AEA7:	20D9AE  	JSR $AED9      ; Draw "Shadow"
C3/AEAA:	A902    	LDA #$02       ; For C3/7B8F...
C3/AEAC:	0447    	TSB $47        ; See C3/B2BB...
C3/AEAE:	A902    	LDA #$02       ; Min slot: 16
C3/AEB0:	A05F7A  	LDY #$7A5F     ; C3/7A5F
C3/AEB3:	207311  	JSR $1173      ; Queue OAM fn
C3/AEB6:	A901    	LDA #$01       ; OAM mode: 1
C3/AEB8:	9F49367E	STA $7E3649,X  ; Set sprite's
C3/AEBC:	BF4A367E	LDA $7E364A,X  ; Sprite flags
C3/AEC0:	0902    	ORA #$02       ; Add H-Flip
C3/AEC2:	9F4A367E	STA $7E364A,X  ; Save changes
C3/AEC6:	9B      	TXY            ; Queue index
C3/AEC7:	A938    	LDA #$38       ; Sprite X: 56
C3/AEC9:	85E1    	STA $E1        ; Memorize it
C3/AECB:	A968    	LDA #$68       ; Sprite Y: 104
C3/AECD:	85E2    	STA $E2        ; Memorize it
C3/AECF:	7B      	TDC            ; Clear A
C3/AED0:	A903    	LDA #$03       ; Sprite set: 3
C3/AED2:	20FA78  	JSR $78FA      ; Set anim ptr
C3/AED5:	2011B2  	JSR $B211      ; Set position
C3/AED8:	60      	RTS

Draw Shadow's name at Colosseum
C3/AED9:	7B      	TDC            ; Clear A
C3/AEDA:	AA      	TAX            ; 1st: Terra
C3/AEDB:	86E7    	STX $E7        ; Save index
C3/AEDD:	C220    	REP #$20       ; 16-bit A
C3/AEDF:	BF6969C3	LDA $C36969,X  ; Actor address
C3/AEE3:	AA      	TAX            ; Index it
C3/AEE4:	E220    	SEP #$20       ; 8-bit A
C3/AEE6:	BD0000  	LDA $0000,X    ; Actor in slot
C3/AEE9:	C903    	CMP #$03       ; Shadow?
C3/AEEB:	F00B    	BEQ $AEF8      ; Retain if so
C3/AEED:	A6E7    	LDX $E7        ; Actor index
C3/AEEF:	E8      	INX            ; Index +1
C3/AEF0:	E8      	INX            ; Index +1
C3/AEF1:	E02000  	CPX #$0020     ; Done 16 actors?
C3/AEF4:	D0E5    	BNE $AEDB      ; Loop if not
C3/AEF6:	80FE    	BRA $AEF6      ; Freeze game...
C3/AEF8:	8667    	STX $67        ; Save actor index
C3/AEFA:	A0117C  	LDY #$7C11     ; Text position
C3/AEFD:	4CCF34  	JMP $34CF      ; Draw actor name

Build tilemap for Colosseum enemy
C3/AF00:	A691    	LDX $91        ; Tilemap ptr
C3/AF02:	86ED    	STX $ED        ; Set dst LBs
C3/AF04:	A599    	LDA $99        ; Monster size
C3/AF06:	C908    	CMP #$08       ; 8x8 tiles?
C3/AF08:	F00C    	BEQ $AF16      ; Branch if so
C3/AF0A:	A21000  	LDX #$0010     ; Tiles: 16
C3/AF0D:	86F1    	STX $F1        ; Set height
C3/AF0F:	A21000  	LDX #$0010     ; ...
C3/AF12:	86E0    	STX $E0        ; Set width
C3/AF14:	8007    	BRA $AF1D      ; Skip 3 lines
C3/AF16:	A20800  	LDX #$0008     ; Tiles: 8
C3/AF19:	86F1    	STX $F1        ; Set height
C3/AF1B:	86E0    	STX $E0        ; Set width
C3/AF1D:	A97E    	LDA #$7E       ; Bank: 7E
C3/AF1F:	85EF    	STA $EF        ; Set dst HB
C3/AF21:	C220    	REP #$20       ; 16-bit A
C3/AF23:	A9012C  	LDA #$2C01     ; Tile 1, pal 3
C3/AF26:	85E7    	STA $E7        ; Priority: Yes
C3/AF28:	A6E0    	LDX $E0        ; Width in tiles
C3/AF2A:	A400    	LDY $00        ; Map index: 0
C3/AF2C:	A5E7    	LDA $E7        ; Tile attribs
C3/AF2E:	97ED    	STA [$ED],Y    ; Put in tilemap
C3/AF30:	C8      	INY            ; Map index +1
C3/AF31:	C8      	INY            ; Map index +1
C3/AF32:	E6E7    	INC $E7        ; Tile number +1
C3/AF34:	CA      	DEX            ; One less column
C3/AF35:	D0F5    	BNE $AF2C      ; Loop till last
C3/AF37:	A5ED    	LDA $ED        ; Tilemap ptr
C3/AF39:	18      	CLC            ; Prepare ADC
C3/AF3A:	694000  	ADC #$0040     ; Go 1 row down
C3/AF3D:	85ED    	STA $ED        ; Save changes
C3/AF3F:	C6F1    	DEC $F1        ; One less row
C3/AF41:	D0E5    	BNE $AF28      ; Loop till last
C3/AF43:	E220    	SEP #$20       ; 8-bit A
C3/AF45:	60      	RTS

Load prize and enemy data for Colosseum matchup
C3/AF46:	202CB2  	JSR $B22C      ; Set enemy, prize
C3/AF49:	AD0602  	LDA $0206      ; Enemy number
C3/AF4C:	8D0242  	STA $4202      ; Set multiplicand
C3/AF4F:	A905    	LDA #$05       ; Enemy data size
C3/AF51:	8D0342  	STA $4203      ; Set multiplier
C3/AF54:	A01050  	LDY #$5010     ; $5010
C3/AF57:	8C1621  	STY $2116      ; Set VRAM ptr
C3/AF5A:	EA      	NOP
C3/AF5B:	EA      	NOP
C3/AF5C:	AE1642  	LDX $4216      ; Index product
C3/AF5F:	BF0070D2	LDA $D27000,X  ; GFX ptr/8 LSBs
C3/AF63:	85E7    	STA $E7        ; Save in RAM
C3/AF65:	BF0170D2	LDA $D27001,X  ; Ptr MSBs; flag
C3/AF69:	85E8    	STA $E8        ; Save in RAM
C3/AF6B:	BF0270D2	LDA $D27002,X  ; Pal/Mold info
C3/AF6F:	85F2    	STA $F2        ; Save in RAM
C3/AF71:	BF0370D2	LDA $D27003,X  ; Palette LSBs
C3/AF75:	85F1    	STA $F1        ; Save in RAM
C3/AF77:	BF0470D2	LDA $D27004,X  ; Mold index LSBs
C3/AF7B:	85E9    	STA $E9        ; Save in RAM

Fork: Relocate color depth flag
C3/AF7D:	A5E8    	LDA $E8        ; 8-color palette?
C3/AF7F:	3004    	BMI $AF85      ; Branch if so
C3/AF81:	64FF    	STZ $FF        ; Colors: 16
C3/AF83:	8008    	BRA $AF8D      ; Skip other case
C3/AF85:	A901    	LDA #$01       ; Colors: 8
C3/AF87:	85FF    	STA $FF        ; Set color depth
C3/AF89:	A980    	LDA #$80       ; 8-color flag
C3/AF8B:	14E8    	TRB $E8        ; Clear original

Fork: Compute enemy graphics address ($E97000+8X)
C3/AF8D:	A9E9    	LDA #$E9       ; Bank: E9
C3/AF8F:	85F7    	STA $F7        ; Set base adr HB
C3/AF91:	C220    	REP #$20       ; 16-bit A
C3/AF93:	A90070  	LDA #$7000     ; E9/7000
C3/AF96:	85F5    	STA $F5        ; Set base adr LBs
C3/AF98:	A5E7    	LDA $E7        ; GFX ptr / 8
C3/AF9A:	85F9    	STA $F9        ; Init real ptr
C3/AF9C:	64FB    	STZ $FB        ; Clear HBs
C3/AF9E:	06F9    	ASL $F9        ; Ptr LBs x2
C3/AFA0:	26FB    	ROL $FB        ; Ptr HBs x2 + C
C3/AFA2:	06F9    	ASL $F9        ; Ptr LBs x2
C3/AFA4:	26FB    	ROL $FB        ; Ptr HBs x2 + C
C3/AFA6:	06F9    	ASL $F9        ; Ptr LBs x2
C3/AFA8:	26FB    	ROL $FB        ; Ptr HBs x2 + C
C3/AFAA:	18      	CLC            ; Prepare ADC
C3/AFAB:	A5F9    	LDA $F9        ; GFX pointer LBs
C3/AFAD:	65F5    	ADC $F5        ; Add base address
C3/AFAF:	85F5    	STA $F5        ; Set address LBs
C3/AFB1:	A5FB    	LDA $FB        ; GFX pointer HB
C3/AFB3:	65F7    	ADC $F7        ; Add base address
C3/AFB5:	85F7    	STA $F7        ; Set address HB
C3/AFB7:	A600    	LDX $00        ; GFX index: 0

Fork: Set address pointer and size for 8x8 mold data
C3/AFB9:	E220    	SEP #$20       ; 8-bit A
C3/AFBB:	A5F2    	LDA $F2        ; 16x16 image?
C3/AFBD:	3009    	BMI $AFC8      ; Branch if so
C3/AFBF:	A020A8  	LDY #$A820     ; D2/A820
C3/AFC2:	84E3    	STY $E3        ; Set address ptr
C3/AFC4:	A908    	LDA #$08       ; 8-tile rows: 8
C3/AFC6:	8007    	BRA $AFCF      ; Set data size

Fork: Set address pointer and size for 16x16 mold data
C3/AFC8:	A022A8  	LDY #$A822     ; D2/A822
C3/AFCB:	84E3    	STY $E3        ; Set address ptr
C3/AFCD:	A920    	LDA #$20       ; 8-tile rows: 32
C3/AFCF:	85E6    	STA $E6        ; Set rows left
C3/AFD1:	8599    	STA $99        ; Set enemy size
C3/AFD3:	A9D2    	LDA #$D2       ; Bank: D2
C3/AFD5:	85E5    	STA $E5        ; Set pointer HB

Fork: Define mold index's high byte
C3/AFD7:	A5F2    	LDA $F2        ; Monster flags
C3/AFD9:	2940    	AND #$40       ; Mold index MSB
C3/AFDB:	2A      	ROL A          ; Put in bit 7
C3/AFDC:	2A      	ROL A          ; Put in Carry
C3/AFDD:	2A      	ROL A          ; Put in bit 0
C3/AFDE:	85EA    	STA $EA        ; Set index HB

Fork: Load address to 8x8 enemy's mold ($D2A824+8X)
C3/AFE0:	A5F2    	LDA $F2        ; 16x16 image?
C3/AFE2:	3009    	BMI $AFED      ; Branch if so
C3/AFE4:	C220    	REP #$20       ; 16-bit A
C3/AFE6:	A5E9    	LDA $E9        ; Mold index
C3/AFE8:	0A      	ASL A          ; x2
C3/AFE9:	0A      	ASL A          ; x4
C3/AFEA:	0A      	ASL A          ; x8
C3/AFEB:	8009    	BRA $AFF6      ; Set address

Fork: Load address to 16x16 enemy's mold ($D2AC24+32X)
C3/AFED:	C220    	REP #$20       ; 16-bit A
C3/AFEF:	A5E9    	LDA $E9        ; Mold index
C3/AFF1:	0A      	ASL A          ; x2
C3/AFF2:	0A      	ASL A          ; x4
C3/AFF3:	0A      	ASL A          ; x8
C3/AFF4:	0A      	ASL A          ; x16
C3/AFF5:	0A      	ASL A          ; x32
C3/AFF6:	18      	CLC            ; Prepare ADC
C3/AFF7:	67E3    	ADC [$E3]      ; Add base adr
C3/AFF9:	85E0    	STA $E0        ; Set src LBs
C3/AFFB:	E220    	SEP #$20       ; 8-bit A
C3/AFFD:	A9D2    	LDA #$D2       ; Bank: D2
C3/AFFF:	85E2    	STA $E2        ; Set src HB

Fork: Load 8-tile row, blank tiles excluded from mold
C3/B001:	A00800  	LDY #$0008     ; Columns: 8
C3/B004:	DA      	PHX            ; Save GFX index
C3/B005:	7B      	TDC            ; Clear A
C3/B006:	A5E6    	LDA $E6        ; Rows left
C3/B008:	AA      	TAX            ; Index it
C3/B009:	A7E0    	LDA [$E0]      ; Mold row flags
C3/B00B:	9F889D7E	STA $7E9D88,X  ; For centering
C3/B00F:	FA      	PLX            ; GFX index
C3/B010:	18      	CLC            ; Prepare ROL
C3/B011:	5A      	PHY            ; Save column
C3/B012:	2A      	ROL A          ; Blank tile here?
C3/B013:	48      	PHA            ; Save mold flags
C3/B014:	9005    	BCC $B01B      ; Branch if blank
C3/B016:	201EB1  	JSR $B11E      ; Load tile's GFX
C3/B019:	8003    	BRA $B01E      ; Skip a line
C3/B01B:	200AB1  	JSR $B10A      ; Make blank tile
C3/B01E:	68      	PLA            ; Mold row flags
C3/B01F:	7A      	PLY            ; Columns left
C3/B020:	88      	DEY            ; One less left
C3/B021:	D0ED    	BNE $B010      ; Loop till last

Fork: Handle next 8-tile row
C3/B023:	C220    	REP #$20       ; 16-bit A
C3/B025:	E6E0    	INC $E0        ; Mold data adr +1
C3/B027:	E220    	SEP #$20       ; 8-bit A
C3/B029:	C6E6    	DEC $E6        ; One less row
C3/B02B:	D0D4    	BNE $B001      ; Loop till last

Fork: Set position and load colors
C3/B02D:	2033B0  	JSR $B033      ; Set tilemap ptr
C3/B030:	4C5AB1  	JMP $B15A      ; Load enemy pal

Position Colosseum enemy based on size
C3/B033:	64E0    	STZ $E0        ; Blank rows: 0
C3/B035:	64E4    	STZ $E4        ; Rel pos LB: 0
C3/B037:	64E5    	STZ $E5        ; Rel pos HB: 0
C3/B039:	64E3    	STZ $E3        ; Clear filled cols
C3/B03B:	A600    	LDX $00        ; 1st: Bottom row
C3/B03D:	A599    	LDA $99        ; Monster size
C3/B03F:	C908    	CMP #$08       ; 8x8 tiles?
C3/B041:	D036    	BNE $B079      ; Branch if not

Fork: Count blank rows, identify filled columns (8x8)
C3/B043:	BF899D7E	LDA $7E9D89,X  ; Blank row here?
C3/B047:	D007    	BNE $B050      ; Branch if not
C3/B049:	E6E0    	INC $E0        ; Blank rows +1
C3/B04B:	E8      	INX            ; Point 1 row up
C3/B04C:	C908    	CMP #$08       ; Bogus...
C3/B04E:	D0F3    	BNE $B043      ; Test next row
C3/B050:	A600    	LDX $00        ; 1st: Bottom row
C3/B052:	BF899D7E	LDA $7E9D89,X  ; Row's filled cols
C3/B056:	05E3    	ORA $E3        ; Add prior rows'
C3/B058:	85E3    	STA $E3        ; Save merged rows
C3/B05A:	E8      	INX            ; Point 1 row up
C3/B05B:	E00800  	CPX #$0008     ; Done all 8 rows?
C3/B05E:	D0F2    	BNE $B052      ; Loop if not

Fork: Position 8x8 enemy based on empty columns
C3/B060:	66E3    	ROR $E3        ; Empty column here?
C3/B062:	B004    	BCS $B068      ; Branch if not
C3/B064:	E6E4    	INC $E4        ; Relative pos +1
C3/B066:	80F8    	BRA $B060      ; Test next column
C3/B068:	46E4    	LSR $E4        ; If odd-numbered:
C3/B06A:	06E4    	ASL $E4        ; Relative pos -1
C3/B06C:	C221    	REP #$21       ; 16-bit A; C-
C3/B06E:	A5E4    	LDA $E4        ; Relative position
C3/B070:	69513A  	ADC #$3A51     ; X+4, Y+8 tiles
C3/B073:	85E7    	STA $E7        ; Save tilemap ptr
C3/B075:	E220    	SEP #$20       ; 8-bit A
C3/B077:	803B    	BRA $B0B4      ; Adjust Y position

Fork: Count blank rows, identify R-Half's filled columns (16x16)
C3/B079:	BF899D7E	LDA $7E9D89,X  ; Row's right half
C3/B07D:	1F8A9D7E	ORA $7E9D8A,X  ; L-Half empty too?
C3/B081:	D009    	BNE $B08C      ; Branch if not
C3/B083:	E6E0    	INC $E0        ; Blank rows +1
C3/B085:	E8      	INX            ; 8-tile index +1
C3/B086:	E8      	INX            ; 8-tile index +1
C3/B087:	E02000  	CPX #$0020     ; Done all 16 rows?
C3/B08A:	D0ED    	BNE $B079      ; Loop if not
C3/B08C:	A600    	LDX $00        ; 1st: Bottom row
C3/B08E:	BF899D7E	LDA $7E9D89,X  ; R-Half filled cols
C3/B092:	05E3    	ORA $E3        ; Add prior rows'
C3/B094:	85E3    	STA $E3        ; Save merged rows
C3/B096:	E8      	INX            ; 8-tile index +1
C3/B097:	E8      	INX            ; 8-tile index +1
C3/B098:	E02000  	CPX #$0020     ; Done all 16 rows?
C3/B09B:	D0F1    	BNE $B08E      ; Loop if not

Fork: Position 16x16 enemy based on empty columns
C3/B09D:	66E3    	ROR $E3        ; Empty column?
C3/B09F:	B004    	BCS $B0A5      ; Branch if not
C3/B0A1:	E6E4    	INC $E4        ; Relative pos +1
C3/B0A3:	80F8    	BRA $B09D      ; Test next column
C3/B0A5:	46E4    	LSR $E4        ; If odd-numbered:
C3/B0A7:	06E4    	ASL $E4        ; Relative pos -1
C3/B0A9:	C221    	REP #$21       ; 16-bit A; C-
C3/B0AB:	A5E4    	LDA $E4        ; Relative position
C3/B0AD:	694938  	ADC #$3849     ; Add base address
C3/B0B0:	85E7    	STA $E7        ; Save tilemap ptr
C3/B0B2:	E220    	SEP #$20       ; 8-bit A
C3/B0B4:	4CB7B0  	JMP $B0B7      ; ...

Fork: Adjust Y position based on enemy and blank rows
C3/B0B7:	7B      	TDC            ; Clear A
C3/B0B8:	AD0602  	LDA $0206      ; Enemy number
C3/B0BB:	AA      	TAX            ; Index it
C3/B0BC:	BF00E8EC	LDA $ECE800,X  ; Modifier index
C3/B0C0:	C220    	REP #$20       ; 16-bit A
C3/B0C2:	0A      	ASL A          ; Double it
C3/B0C3:	AA      	TAX            ; Index it
C3/B0C4:	E220    	SEP #$20       ; 8-bit A
C3/B0C6:	7CC9B0  	JMP ($B0C9,X)  ; Shift enemy

Jump table for the above
C3/B0C9:	D3B0    	; Shift up by 3
C3/B0CB:	F8B0    	; Shift down by $E0
C3/B0CD:	E2B0    	; Shift down by $E0 - 1
C3/B0CF:	EAB0    	; Shift down by $E0 + 1
C3/B0D1:	EEB0    	; Shift down by $E0 - 3

Shift enemy up by 3 tiles
C3/B0D3:	64E0    	STZ $E0        ; Blank rows: 0
C3/B0D5:	C220    	REP #$20       ; 16-bit A
C3/B0D7:	A5E7    	LDA $E7        ; Tilemap ptr
C3/B0D9:	38      	SEC            ; Prepare SBC
C3/B0DA:	E9C000  	SBC #$00C0     ; Go 3 rows up
C3/B0DD:	8591    	STA $91        ; Save map ptr
C3/B0DF:	E220    	SEP #$20       ; 8-bit A
C3/B0E1:	60      	RTS

Shift enemy down by $E0 - 1
C3/B0E2:	C6E0    	DEC $E0        ; Blank rows -1
C3/B0E4:	1002    	BPL $B0E8      ; Branch if 0+
C3/B0E6:	64E0    	STZ $E0        ; Blank rows: 0
C3/B0E8:	800E    	BRA $B0F8      ; Shift enemy

Shift enemy down by $E0 + 1
C3/B0EA:	E6E0    	INC $E0        ; Blank rows +1
C3/B0EC:	800A    	BRA $B0F8      ; Shift enemy

Shift enemy down by $E0 - 3
C3/B0EE:	C6E0    	DEC $E0        ; Blank rows -1
C3/B0F0:	C6E0    	DEC $E0        ; Blank rows -1
C3/B0F2:	C6E0    	DEC $E0        ; Blank rows -1
C3/B0F4:	1002    	BPL $B0F8      ; Branch if 0+
C3/B0F6:	64E0    	STZ $E0        ; Blank rows: 0

Shift enemy down by $E0
C3/B0F8:	7B      	TDC            ; ...
C3/B0F9:	A5E0    	LDA $E0        ; Blank rows
C3/B0FB:	C221    	REP #$21       ; 16-bit A; C-
C3/B0FD:	0A      	ASL A          ; x2
C3/B0FE:	0A      	ASL A          ; x4
C3/B0FF:	0A      	ASL A          ; x8
C3/B100:	0A      	ASL A          ; x16
C3/B101:	0A      	ASL A          ; x32
C3/B102:	0A      	ASL A          ; x64
C3/B103:	65E7    	ADC $E7        ; Add map ptr
C3/B105:	8591    	STA $91        ; Save map ptr
C3/B107:	E220    	SEP #$20       ; 8-bit A
C3/B109:	60      	RTS

Create a blank tile at current location in VRAM
C3/B10A:	A01000  	LDY #$0010     ; Rows: 8
C3/B10D:	84E3    	STY $E3        ; Set loop limit
C3/B10F:	C220    	REP #$20       ; 16-bit A
C3/B111:	A400    	LDY $00        ; Loop count: 0
C3/B113:	9C1821  	STZ $2118      ; 8 px, 2 planes
C3/B116:	C8      	INY            ; Loop count +1
C3/B117:	C4E3    	CPY $E3        ; Done 8 rows?
C3/B119:	D0F8    	BNE $B113      ; Loop if not
C3/B11B:	E220    	SEP #$20       ; 8-bit A
C3/B11D:	60      	RTS

Upload current tile from monster's tileset
C3/B11E:	A5FF    	LDA $FF        ; Has 8 colors?
C3/B120:	D007    	BNE $B129      ; Branch if so
C3/B122:	A01000  	LDY #$0010     ; Bytes: 32
C3/B125:	84E3    	STY $E3        ; Set loop limit
C3/B127:	801C    	BRA $B145      ; Load tile GFX

Fork: Load 8-color tile, encode as 4bpp
C3/B129:	A00800  	LDY #$0008     ; Bytes: 16
C3/B12C:	84E3    	STY $E3        ; Set loop limit
C3/B12E:	2045B1  	JSR $B145      ; Load rows' LSBs
C3/B131:	9B      	TXY            ; ...
C3/B132:	A20800  	LDX #$0008     ; Rows left: 8
C3/B135:	7B      	TDC            ; Clear A
C3/B136:	B7F5    	LDA [$F5],Y    ; GFX row's MSBs
C3/B138:	C220    	REP #$20       ; 16-bit A
C3/B13A:	8D1821  	STA $2118      ; Save in VRAM
C3/B13D:	E220    	SEP #$20       ; 8-bit A
C3/B13F:	C8      	INY            ; GFX index +1
C3/B140:	CA      	DEX            ; One less row
C3/B141:	D0F3    	BNE $B136      ; Loop till last
C3/B143:	BB      	TYX            ; GFX index
C3/B144:	60      	RTS

Fork: Upload specified number of words
C3/B145:	9B      	TXY            ; GFX index
C3/B146:	A600    	LDX $00        ; Loop count: 0
C3/B148:	C220    	REP #$20       ; 16-bit A
C3/B14A:	B7F5    	LDA [$F5],Y    ; 8 px, 2 planes
C3/B14C:	8D1821  	STA $2118      ; Save in VRAM
C3/B14F:	C8      	INY            ; GFX index +1
C3/B150:	C8      	INY            ; GFX index +1
C3/B151:	E8      	INX            ; Loop count +1
C3/B152:	E4E3    	CPX $E3        ; Beyond range?
C3/B154:	D0F4    	BNE $B14A      ; Loop if not
C3/B156:	E220    	SEP #$20       ; 8-bit A
C3/B158:	BB      	TYX            ; GFX index
C3/B159:	60      	RTS

Load monster's palette
C3/B15A:	C220    	REP #$20       ; 16-bit A
C3/B15C:	A5F1    	LDA $F1        ; Palette index
C3/B15E:	29FF03  	AND #$03FF     ; Clear flags
C3/B161:	0A      	ASL A          ; x2
C3/B162:	0A      	ASL A          ; x4
C3/B163:	0A      	ASL A          ; x8
C3/B164:	0A      	ASL A          ; x16
C3/B165:	AA      	TAX            ; Index it
C3/B166:	E220    	SEP #$20       ; 8-bit A
C3/B168:	A0A930  	LDY #$30A9     ; 7E/30A9
C3/B16B:	8C8121  	STY $2181      ; Set WRAM LBs
C3/B16E:	A02000  	LDY #$0020     ; Colors: 16
C3/B171:	BF2078D2	LDA $D27820,X  ; Color data
C3/B175:	8D8021  	STA $2180      ; To BG pal 3
C3/B178:	E8      	INX            ; ROM index +1
C3/B179:	88      	DEY            ; One less byte
C3/B17A:	D0F5    	BNE $B171      ; Loop till last
C3/B17C:	60      	RTS

Create Colosseum member 1
C3/B17D:	A46D    	LDY $6D        ; Actor's address
C3/B17F:	F015    	BEQ $B196      ; Exit if nobody
C3/B181:	8467    	STY $67        ; Memorize it
C3/B183:	A04F7E  	LDY #$7E4F     ; Text position
C3/B186:	20E5B1  	JSR $B1E5      ; Draw name; OAM
C3/B189:	A920    	LDA #$20       ; Sprite's X: 32
C3/B18B:	85E1    	STA $E1        ; Memorize it
C3/B18D:	A9A8    	LDA #$A8       ; Sprite's Y: 168
C3/B18F:	85E2    	STA $E2        ; Memorize it
C3/B191:	A569    	LDA $69        ; Actor's slot
C3/B193:	20F3B1  	JSR $B1F3      ; Init sprite
C3/B196:	60      	RTS

Create Colosseum member 2
C3/B197:	A46F    	LDY $6F        ; Actor's address
C3/B199:	F015    	BEQ $B1B0      ; Exit if nobody
C3/B19B:	8467    	STY $67        ; Memorize it
C3/B19D:	A05D7E  	LDY #$7E5D     ; Text position
C3/B1A0:	20E5B1  	JSR $B1E5      ; Draw name; OAM
C3/B1A3:	A958    	LDA #$58       ; Sprite's X: 88
C3/B1A5:	85E1    	STA $E1        ; Memorize it
C3/B1A7:	A9A8    	LDA #$A8       ; Sprite's Y: 168
C3/B1A9:	85E2    	STA $E2        ; Memorize it
C3/B1AB:	A56A    	LDA $6A        ; Actor
C3/B1AD:	20F3B1  	JSR $B1F3      ; Init sprite
C3/B1B0:	60      	RTS

Create Colosseum member 3
C3/B1B1:	A471    	LDY $71        ; Actor's address
C3/B1B3:	F015    	BEQ $B1CA      ; Exit if nobody
C3/B1B5:	8467    	STY $67        ; Memorize it
C3/B1B7:	A06B7E  	LDY #$7E6B     ; Text position
C3/B1BA:	20E5B1  	JSR $B1E5      ; Draw name; OAM
C3/B1BD:	A990    	LDA #$90       ; Sprite's X: 144
C3/B1BF:	85E1    	STA $E1        ; Memorize it
C3/B1C1:	A9A8    	LDA #$A8       ; Sprite's Y: 168
C3/B1C3:	85E2    	STA $E2        ; Memorize it
C3/B1C5:	A56B    	LDA $6B        ; Actor's slot
C3/B1C7:	20F3B1  	JSR $B1F3      ; Init sprite
C3/B1CA:	60      	RTS

Create Colosseum member 4
C3/B1CB:	A473    	LDY $73        ; Actor's address
C3/B1CD:	F015    	BEQ $B1E4      ; Exit if nobody
C3/B1CF:	8467    	STY $67        ; Memorize it
C3/B1D1:	A0797E  	LDY #$7E79     ; Text position
C3/B1D4:	20E5B1  	JSR $B1E5      ; Draw name; OAM
C3/B1D7:	A9C8    	LDA #$C8       ; Sprite's X: 200
C3/B1D9:	85E1    	STA $E1        ; Memorize it
C3/B1DB:	A9A8    	LDA #$A8       ; Sprite's Y: 168
C3/B1DD:	85E2    	STA $E2        ; Memorize it
C3/B1DF:	A56C    	LDA $6C        ; Actor's slot
C3/B1E1:	20F3B1  	JSR $B1F3      ; Init sprite
C3/B1E4:	60      	RTS

Draw Colosseum member's name, queue sprite function
C3/B1E5:	20CF34  	JSR $34CF      ; Draw actor name
C3/B1E8:	A902    	LDA #$02       ; Min slot: 16
C3/B1EA:	A05F7A  	LDY #$7A5F     ; C3/7A5F
C3/B1ED:	207311  	JSR $1173      ; Queue OAM fn
C3/B1F0:	9B      	TXY            ; Queue index
C3/B1F1:	7B      	TDC            ; Clear A
C3/B1F2:	60      	RTS

Initialize Colosseum actor sprite, excluding enemy Shadow
C3/B1F3:	0A      	ASL A          ; Actor x2
C3/B1F4:	AA      	TAX            ; Index it
C3/B1F5:	C220    	REP #$20       ; 16-bit A
C3/B1F7:	BF6969C3	LDA $C36969,X  ; Actor address
C3/B1FB:	AA      	TAX            ; Index it
C3/B1FC:	E220    	SEP #$20       ; 8-bit A
C3/B1FE:	BD1400  	LDA $0014,X    ; Status
C3/B201:	2920    	AND #$20       ; Imp?
C3/B203:	F005    	BEQ $B20A      ; Branch if not
C3/B205:	7B      	TDC            ; Clear A
C3/B206:	A90F    	LDA #$0F       ; Use Imp set
C3/B208:	8004    	BRA $B20E      ; Skip 2 lines
C3/B20A:	7B      	TDC            ; Clear A
C3/B20B:	BD0100  	LDA $0001,X    ; Sprite set
C3/B20E:	20FA78  	JSR $78FA      ; Set anim ptr
C3/B211:	A9D8    	LDA #$D8       ; Bank: D8
C3/B213:	99CA35  	STA $35CA,Y    ; Set ptr HB
C3/B216:	A5E1    	LDA $E1        ; X position
C3/B218:	99CA33  	STA $33CA,Y    ; Set sprite's
C3/B21B:	A5E2    	LDA $E2        ; Y position
C3/B21D:	994A34  	STA $344A,Y    ; Set sprite's
C3/B220:	7B      	TDC            ; Clear A
C3/B221:	99CB33  	STA $33CB,Y    ; No use...
C3/B224:	994B34  	STA $344B,Y    ; No use...
C3/B227:	A900    	LDA #$00       ; Clear A
C3/B229:	48      	PHA            ; Put on stack
C3/B22A:	AB      	PLB            ; Set DB to 0
C3/B22B:	60      	RTS

Load opponent and prize data for item bet
C3/B22C:	7B      	TDC            ; Clear A
C3/B22D:	AD0502  	LDA $0205      ; Item bet
C3/B230:	C220    	REP #$20       ; 16-bit A
C3/B232:	0A      	ASL A          ; x2
C3/B233:	0A      	ASL A          ; x4
C3/B234:	AA      	TAX            ; Index it
C3/B235:	E220    	SEP #$20       ; 8-bit A
C3/B237:	BF00B6DF	LDA $DFB600,X  ; Opponent
C3/B23B:	8D0602  	STA $0206      ; Save in RAM
C3/B23E:	BF02B6DF	LDA $DFB602,X  ; Prize
C3/B242:	8D0702  	STA $0207      ; Save in RAM
C3/B245:	BF03B6DF	LDA $DFB603,X  ; Hide Prize flag
C3/B249:	8D0902  	STA $0209      ; Save in RAM
C3/B24C:	60      	RTS            ; ^ Read below

Draw Colosseum bet
C3/B24D:	AD0502  	LDA $0205      ; Item bet
C3/B250:	A22B79  	LDX #$792B     ; Text position
C3/B253:	800E    	BRA $B263      ; Draw item name

Draw Colosseum prize
C3/B255:	AD0902  	LDA $0209      ; Hide prize?
C3/B258:	F003    	BEQ $B25D      ; Branch if not
C3/B25A:	4C86B2  	JMP $B286      ; Draw "???..."
C3/B25D:	AD0702  	LDA $0207      ; Prize
C3/B260:	A20D79  	LDX #$790D     ; Tilemap ptr
C3/B263:	48      	PHA            ; Save item
C3/B264:	A08B9E  	LDY #$9E8B     ; 7E/9E8B
C3/B267:	8C8121  	STY $2181      ; Set WRAM LBs
C3/B26A:	C220    	REP #$20       ; 16-bit A
C3/B26C:	8A      	TXA            ; Tilemap ptr
C3/B26D:	8F899E7E	STA $7E9E89    ; Set position
C3/B271:	E220    	SEP #$20       ; 8-bit A
C3/B273:	AD1242  	LDA $4212      ; PPU status
C3/B276:	2940    	AND #$40       ; H-Blank?
C3/B278:	F0F9    	BEQ $B273      ; Loop if not
C3/B27A:	68      	PLA            ; Item
C3/B27B:	20CE80  	JSR $80CE      ; Load "<item>:"
C3/B27E:	7B      	TDC            ; Terminator
C3/B27F:	8F989E7E	STA $7E9E98    ; Remove ":"
C3/B283:	4CD97F  	JMP $7FD9      ; Draw item name

Fork: Draw question marks
C3/B286:	A027B4  	LDY #$B427     ; Text pointer
C3/B289:	20F902  	JSR $02F9      ; Draw string
C3/B28C:	60      	RTS

Draw monster's name for Colosseum
C3/B28D:	C220    	REP #$20       ; 16-bit A
C3/B28F:	A94F7C  	LDA #$7C4F     ; Tilemap ptr
C3/B292:	8F899E7E	STA $7E9E89    ; Set position
C3/B296:	E220    	SEP #$20       ; 8-bit A
C3/B298:	200954  	JSR $5409      ; Define source
C3/B29B:	7B      	TDC            ; ...
C3/B29C:	AD0602  	LDA $0206      ; Opponent
C3/B29F:	206784  	JSR $8467      ; Load name
C3/B2A2:	4CD97F  	JMP $7FD9      ; Draw name

Update Colosseum challenger's name and sprite
C3/B2A5:	8B      	PHB            ; Save DB
C3/B2A6:	A900    	LDA #$00       ; Zero A
C3/B2A8:	48      	PHA            ; Put on stack
C3/B2A9:	AB      	PLB            ; Set DB to 0
C3/B2AA:	7B      	TDC            ; Clear A
C3/B2AB:	A54B    	LDA $4B        ; Cursor slot
C3/B2AD:	0A      	ASL A          ; Double it
C3/B2AE:	AA      	TAX            ; Index it
C3/B2AF:	B46D    	LDY $6D,X      ; Actor address
C3/B2B1:	F02C    	BEQ $B2DF      ; Blank if nobody
C3/B2B3:	8467    	STY $67        ; Memorize it
C3/B2B5:	A0757C  	LDY #$7C75     ; Text position
C3/B2B8:	20CF34  	JSR $34CF      ; Draw actor name
C3/B2BB:	A902    	LDA #$02       ; Temp sprite: Y
C3/B2BD:	0447    	TSB $47        ; Set menu flag
C3/B2BF:	A902    	LDA #$02       ; Min slot: 16
C3/B2C1:	A0427B  	LDY #$7B42     ; C3/7B42
C3/B2C4:	207311  	JSR $1173      ; Queue OAM fn
C3/B2C7:	A901    	LDA #$01       ; Anim mode: 1
C3/B2C9:	9F49367E	STA $7E3649,X  ; Set sprite's
C3/B2CD:	9B      	TXY            ; Queue index
C3/B2CE:	7B      	TDC            ; Clear A
C3/B2CF:	A9B8    	LDA #$B8       ; Sprite's X: 184
C3/B2D1:	85E1    	STA $E1        ; Memorize it
C3/B2D3:	A968    	LDA #$68       ; Sprite's Y: 104
C3/B2D5:	85E2    	STA $E2        ; Memorize it
C3/B2D7:	20ECB2  	JSR $B2EC      ; Actor's slot
C3/B2DA:	20F3B1  	JSR $B1F3      ; Init sprite
C3/B2DD:	8003    	BRA $B2E2      ; Skip a line
C3/B2DF:	20E5B2  	JSR $B2E5      ; Blank name
C3/B2E2:	AB      	PLB            ; Restore DB
C3/B2E3:	38      	SEC            ; Set to requeue
C3/B2E4:	60      	RTS

Blank challenger's name
C3/B2E5:	A006B4  	LDY #$B406     ; Text pointer
C3/B2E8:	20F902  	JSR $02F9      ; Draw 6 spaces
C3/B2EB:	60      	RTS

Get party actor indicated by cursor
C3/B2EC:	7B      	TDC            ; Clear A
C3/B2ED:	A54B    	LDA $4B        ; Cursor slot
C3/B2EF:	AA      	TAX            ; Index it
C3/B2F0:	B569    	LDA $69,X      ; Actor slot
C3/B2F2:	60      	RTS

Update "VS" symbol from Colosseum
C3/B2F3:	AA      	TAX            ; Index mode
C3/B2F4:	7CF7B2  	JMP ($B2F7,X)  ; Handle mode

Jump table for the above
C3/B2F7:	FBB2    	; Initialize sprite
C3/B2F9:	1EB3    	; Sustain sprite

Mode 0: Initialize sprite
C3/B2FB:	A62D    	LDX $2D        ; Queue index
C3/B2FD:	C220    	REP #$20       ; 16-bit A
C3/B2FF:	A987EC  	LDA #$EC87     ; Anim table ptr
C3/B302:	9DC932  	STA $32C9,X    ; Set sprite's
C3/B305:	A97000  	LDA #$0070     ; X: 112
C3/B308:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/B30B:	A96000  	LDA #$0060     ; Y: 96
C3/B30E:	9D4A34  	STA $344A,X    ; Set sprite's
C3/B311:	E220    	SEP #$20       ; 8-bit A
C3/B313:	FE4936  	INC $3649,X    ; Mode +1
C3/B316:	A9D8    	LDA #$D8       ; Bank: D8
C3/B318:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/B31B:	200612  	JSR $1206      ; Set pose timer

Mode 1: Sustain sprite
C3/B31E:	202112  	JSR $1221      ; Define OAM
C3/B321:	38      	SEC            ; Set to requeue
C3/B322:	60      	RTS

Load navigation data for Colosseum matchup menu
C3/B323:	A032B3  	LDY #$B332     ; C3/B332
C3/B326:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for Colosseum matchup menu
C3/B329:	202D07  	JSR $072D      ; Handle D-Pad
C3/B32C:	A037B3  	LDY #$B337     ; C3/B337
C3/B32F:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for Colosseum matchup menu
C3/B332:	01      	; Wraps horizontally
C3/B333:	00      	; Initial column
C3/B334:	00      	; Initial row
C3/B335:	04      	; 4 columns
C3/B336:	01      	; 1 row

Cursor positions for Colosseum matchup menu
C3/B337:	10B0    	; Member 1
C3/B339:	48B0    	; Member 2
C3/B33B:	80B0    	; Member 3
C3/B33D:	B8B0    	; Member 4

Window layout for Colosseum matchup menu
C3/B33F:	8B580D02	; 15x4 at $588B (Prize)
C3/B343:	A9580D02	; 15x4 at $58A9 (Bet)
C3/B347:	CB5C1C07	; 30x9 at $5CCB (Party)

Load arena graphics, tilemap, and colors
C3/B34B:	C220    	REP #$20       ; 16-bit A
C3/B34D:	AF8C16E7	LDA $E7168C    ; E8/0C49
C3/B351:	85F3    	STA $F3        ; Set src LBs
C3/B353:	E220    	SEP #$20       ; 8-bit A
C3/B355:	AF8E16E7	LDA $E7168E    ; Bank: E8
C3/B359:	85F5    	STA $F5        ; Set src HB
C3/B35B:	20F2B3  	JSR $B3F2      ; Unpack GFX A
C3/B35E:	A00068  	LDY #$6800     ; $6800
C3/B361:	8C1621  	STY $2116      ; Set VRAM ptr
C3/B364:	A00010  	LDY #$1000     ; End: 7E/C68C
C3/B367:	84E7    	STY $E7        ; Set src end
C3/B369:	A600    	LDX $00        ; 1st: 7E/B68D
C3/B36B:	20C6B3  	JSR $B3C6      ; Upload GFX A

Fork: Unpack and upload graphics for upper half
C3/B36E:	C220    	REP #$20       ; 16-bit A
C3/B370:	AF9216E7	LDA $E71692    ; E8/1841
C3/B374:	85F3    	STA $F3        ; Set src LBs
C3/B376:	E220    	SEP #$20       ; 8-bit A
C3/B378:	AF9416E7	LDA $E71694    ; Bank: E8
C3/B37C:	85F5    	STA $F5        ; Set src HB
C3/B37E:	20F2B3  	JSR $B3F2      ; Unpack GFX B
C3/B381:	A00070  	LDY #$7000     ; $7000
C3/B384:	8C1621  	STY $2116      ; Set VRAM ptr
C3/B387:	A00010  	LDY #$1000     ; End: 7E/C68C
C3/B38A:	84E7    	STY $E7        ; Set src end
C3/B38C:	A600    	LDX $00        ; 1st: 7E/B68D
C3/B38E:	20C6B3  	JSR $B3C6      ; Upload GFX B

Fork: Unpack battle tilemap, convert to menu format
C3/B391:	C220    	REP #$20       ; 16-bit A
C3/B393:	AF7A18E7	LDA $E7187A    ; E7/652B
C3/B397:	85F3    	STA $F3        ; Set src LBs
C3/B399:	E220    	SEP #$20       ; 8-bit A
C3/B39B:	A9E7    	LDA #$E7       ; Bank: E7
C3/B39D:	85F5    	STA $F5        ; Set src HB
C3/B39F:	20F2B3  	JSR $B3F2      ; Unpack map
C3/B3A2:	20D8B3  	JSR $B3D8      ; Convert map

Fork: Load colors
C3/B3A5:	C220    	REP #$20       ; 16-bit A
C3/B3A7:	A9B00A  	LDA #$0AB0     ; E7/0AB0
C3/B3AA:	85E7    	STA $E7        ; Set src LBs
C3/B3AC:	E220    	SEP #$20       ; 8-bit A
C3/B3AE:	A9E7    	LDA #$E7       ; Bank: E7
C3/B3B0:	85E9    	STA $E9        ; Set src HB
C3/B3B2:	A2C930  	LDX #$30C9     ; 7E/30C9
C3/B3B5:	8E8121  	STX $2181      ; Set WRAM LBs
C3/B3B8:	A400    	LDY $00        ; Index: 0
C3/B3BA:	B7E7    	LDA [$E7],Y    ; Color data
C3/B3BC:	8D8021  	STA $2180      ; To BG pal 4/5/6
C3/B3BF:	C8      	INY            ; Index +1
C3/B3C0:	C06000  	CPY #$0060     ; Done 48 colors?
C3/B3C3:	D0F5    	BNE $B3BA      ; Loop if not
C3/B3C5:	60      	RTS

Upload current graphics set for arena background
C3/B3C6:	C220    	REP #$20       ; 16-bit A
C3/B3C8:	BF8DB67E	LDA $7EB68D,X  ; 8 px, 2 planes
C3/B3CC:	8D1821  	STA $2118      ; Save in VRAM
C3/B3CF:	E8      	INX            ; Index +1
C3/B3D0:	E8      	INX            ; Index +1
C3/B3D1:	E4E7    	CPX $E7        ; Past range?
C3/B3D3:	D0F3    	BNE $B3C8      ; Loop if not
C3/B3D5:	E220    	SEP #$20       ; 8-bit A
C3/B3D7:	60      	RTS

Convert and relocate decompressed arena tilemap
C3/B3D8:	A600    	LDX $00        ; Index: 0
C3/B3DA:	C220    	REP #$20       ; 16-bit A
C3/B3DC:	BF8DB67E	LDA $7EB68D,X  ; Attributes
C3/B3E0:	38      	SEC            ; Prepare SBC
C3/B3E1:	E98003  	SBC #$0380     ; Tile num -896
C3/B3E4:	9F49597E	STA $7E5949,X  ; Put in BG2a
C3/B3E8:	E8      	INX            ; Index +1
C3/B3E9:	E8      	INX            ; Index +1
C3/B3EA:	E08005  	CPX #$0580     ; Done 704?
C3/B3ED:	D0ED    	BNE $B3DC      ; Loop if not
C3/B3EF:	E220    	SEP #$20       ; 8-bit A
C3/B3F1:	60      	RTS

Decompress data for arena background
C3/B3F2:	A08DB6  	LDY #$B68D     ; 7E/B68D
C3/B3F5:	84F6    	STY $F6        ; Set dst LBs
C3/B3F7:	A97E    	LDA #$7E       ; Bank: 7E
C3/B3F9:	85F8    	STA $F8        ; Set dst HB
C3/B3FB:	8B      	PHB            ; Save DB
C3/B3FC:	A97E    	LDA #$7E       ; Bank: 7E
C3/B3FE:	48      	PHA            ; Put on stack
C3/B3FF:	AB      	PLB            ; Set DB to 7E
C3/B400:	226DFFC2	JSL $C2FF6D    ; Unpack data
C3/B404:	AB      	PLB            ; Restore DB
C3/B405:	60      	RTS

Positioned spaces for blanking challenger's name
C3/B406:	757C FFFFFFFFFFFF00

Positioned Colosseum text, "Select the challenger"
C3/B40F:	157D 929EA59E9CADFFADA19EFF9CA19AA5A59EA7A09EAB00

Positioned Colosseum text, "?????????????"
C3/B427:	0D79 BFBFBFBFBFBFBFBFBFBFBFBFBF00

Clear buffer for storing element graphics (4 tiles)
C3/B437:	7B      	TDC            ; Clear A
C3/B438:	AA      	TAX            ; Index: 0
C3/B439:	C220    	REP #$20       ; 16-bit A
C3/B43B:	9F71A27E	STA $7EA271,X  ; Clear a word
C3/B43F:	E8      	INX            ; Index +1
C3/B440:	E8      	INX            ; Index +1
C3/B441:	E4F3    	CPX $F3        ; Past range?
C3/B443:	D0F6    	BNE $B43B      ; Loop if not
C3/B445:	E220    	SEP #$20       ; 8-bit A
C3/B447:	60      	RTS

OAM for small white arrow in actor naming menu
C3/B448:	01      	; Tiles: 1
C3/B449:	0900    	; 8x8, X+9, Y+0
C3/B44B:	023E    	; Tile 2, pal 7, prio 3

OAM for small black arrow in actor naming menu
C3/B44D:	01      	; Tiles: 1
C3/B44E:	0900    	; 8x8, X+9, Y+0
C3/B450:	123E    	; Tile 18, pal 7, prio 3

Animation table for small arrow in actor naming menu
C3/B452:	48B4    	; White arrow
C3/B454:	02      	; Frames: 2
C3/B455:	4DB4    	; Black arrow
C3/B457:	02      	; Frames: 2
C3/B458:	48B4    	; Bogus...
C3/B45A:	FF      	; Loop

OAM for blanking Config's large arrow (SFC: Naming menus' too)
C3/B45B:	00      	; Tiles: 0

OAM for large downward arrow in SwdTech naming menu (SFC)
C3/B45C:	01      	; Tiles: 1
C3/B45D:	8082    	; 16x16, X+0, Y+130
C3/B45F:	033E    	; Tile 3, pal 7, prio 3

OAM for large upward arrow
C3/B461:	01      	; Tiles: 1
C3/B462:	8000    	; 16x16, X+0, Y+0
C3/B464:	03BE    	; Tile 3, pal 7, prio 3, V-Flip

24: Initialize shop menu
C3/B466:	202F35  	JSR $352F      ; Reset/Stop stuff
C3/B469:	200469  	JSR $6904      ; Reset BGs' X/Y
C3/B46C:	20086A  	JSR $6A08      ; Set Win1 bounds
C3/B46F:	A903    	LDA #$03       ; 64x64 at $0000
C3/B471:	8D0721  	STA $2107      ; Set BG1 map loc
C3/B474:	A9C0    	LDA #$C0       ; Channels: 6, 7
C3/B476:	1443    	TRB $43        ; Halt HDMA 6+7...
C3/B478:	A902    	LDA #$02       ; Main cursor: On
C3/B47A:	8546    	STA $46        ; Bar/Blinker: Off
C3/B47C:	644A    	STZ $4A        ; Sell list scroll: 0
C3/B47E:	2086B8  	JSR $B886      ; Load navig data
C3/B481:	208FB8  	JSR $B88F      ; Relocate cursor
C3/B484:	20B007  	JSR $07B0      ; Queue cursor OAM
C3/B487:	20C4B8  	JSR $B8C4      ; Draw menu; desc
C3/B48A:	202B7E  	JSR $7E2B      ; Set to shift text
C3/B48D:	2018C0  	JSR $C018      ; Adjust BG3 shifting
C3/B490:	A925    	LDA #$25       ; C3/B49B
C3/B492:	8527    	STA $27        ; Queue: Sustain menu
C3/B494:	A901    	LDA #$01       ; C3/1D7E
C3/B496:	8526    	STA $26        ; Next: Fade-in
C3/B498:	4C4135  	JMP $3541      ; BRT:1 + NMI

25: Sustain main shop menu
C3/B49B:	208CB8  	JSR $B88C      ; Handle D-Pad
C3/B49E:	A508    	LDA $08        ; No-autofire keys
C3/B4A0:	8980    	BIT #$80       ; Pushing A?
C3/B4A2:	F006    	BEQ $B4AA      ; Branch if not
C3/B4A4:	20B20E  	JSR $0EB2      ; Sound: Click
C3/B4A7:	4C92B7  	JMP $B792      ; Handle choice

Fork: Handle B
C3/B4AA:	A509    	LDA $09        ; No-autofire keys
C3/B4AC:	8980    	BIT #$80       ; Pushing B?
C3/B4AE:	F00C    	BEQ $B4BC      ; Exit if not
C3/B4B0:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/B4B3:	9C0502  	STZ $0205      ; Never read...
C3/B4B6:	A9FF    	LDA #$FF       ; Null value
C3/B4B8:	8527    	STA $27        ; Queue menu exit
C3/B4BA:	6426    	STZ $26        ; Next: Fade-out
C3/B4BC:	60      	RTS

26: Handle buy item list
C3/B4BD:	A910    	LDA #$10       ; Reset/Stop desc
C3/B4BF:	0445    	TSB $45        ; Set menu flag
C3/B4C1:	20390F  	JSR $0F39      ; Queue text upload
C3/B4C4:	20A6B8  	JSR $B8A6      ; Handle D-Pad
C3/B4C7:	2084BC  	JSR $BC84      ; Draw qty owned
C3/B4CA:	20A8BC  	JSR $BCA8      ; Draw qty worn

Fork: Handle B
C3/B4CD:	A509    	LDA $09        ; No-autofire keys
C3/B4CF:	8980    	BIT #$80       ; Pushing B?
C3/B4D1:	F006    	BEQ $B4D9      ; Branch if not
C3/B4D3:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/B4D6:	4C60B7  	JMP $B760      ; Exit submenu

Fork: Handle A
C3/B4D9:	A508    	LDA $08        ; No-autofire keys
C3/B4DB:	8980    	BIT #$80       ; Pushing A?
C3/B4DD:	F006    	BEQ $B4E5      ; Exit if not
C3/B4DF:	202FB8  	JSR $B82F      ; Set buy limit
C3/B4E2:	20E6B7  	JSR $B7E6      ; Test GP, stock
C3/B4E5:	60      	RTS

Set description to be displayed and to ignore joypad
C3/B4E6:	A910    	LDA #$10       ; Description: On
C3/B4E8:	1445    	TRB $45        ; Set menu flag
C3/B4EA:	A920    	LDA #$20       ; D-Pad: Ignore
C3/B4EC:	0445    	TSB $45        ; Set desc flag
C3/B4EE:	60      	RTS

Load item description for Buy menu
C3/B4EF:	200883  	JSR $8308      ; Set desc ptrs
C3/B4F2:	20C2BF  	JSR $BFC2      ; Selected item
C3/B4F5:	4C3857  	JMP $5738      ; Load description

Load item description for Sell menu
C3/B4F8:	200883  	JSR $8308      ; Set desc ptrs
C3/B4FB:	7B      	TDC            ; Clear A
C3/B4FC:	A54B    	LDA $4B        ; Selected slot
C3/B4FE:	AA      	TAX            ; Index it
C3/B4FF:	BD6918  	LDA $1869,X    ; Item in slot
C3/B502:	4C3857  	JMP $5738      ; Load description

27: Handle buy order menu
C3/B505:	20E6B4  	JSR $B4E6      ; Set desc flags
C3/B508:	20EFB4  	JSR $B4EF      ; Load description
C3/B50B:	2053BB  	JSR $BB53      ; Get order value
C3/B50E:	20AEBB  	JSR $BBAE      ; Draw size, value

Fork: Buy quantity +1
C3/B511:	A50B    	LDA $0B        ; Semi-auto keys
C3/B513:	8901    	BIT #$01       ; Pushing right?
C3/B515:	F022    	BEQ $B539      ; Branch if not
C3/B517:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/B51A:	A528    	LDA $28        ; Buy quantity
C3/B51C:	C56A    	CMP $6A        ; At capacity?
C3/B51E:	F05C    	BEQ $B57C      ; Abort if so
C3/B520:	E628    	INC $28        ; Quantity +1
C3/B522:	2053BB  	JSR $BB53      ; Get new cost
C3/B525:	AD6018  	LDA $1860      ; Gold LB
C3/B528:	C5F1    	CMP $F1        ; C- if < cost's
C3/B52A:	AD6118  	LDA $1861      ; Gold MB
C3/B52D:	E5F2    	SBC $F2        ; C- if < cost's
C3/B52F:	AD6218  	LDA $1862      ; Gold HB
C3/B532:	E5F3    	SBC $F3        ; So, GP < cost?
C3/B534:	B002    	BCS $B538      ; Exit if not
C3/B536:	C628    	DEC $28        ; Quantity -1
C3/B538:	60      	RTS

Fork: Buy quantity -1
C3/B539:	A50B    	LDA $0B        ; Semi-auto keys
C3/B53B:	8902    	BIT #$02       ; Pushing left?
C3/B53D:	F00B    	BEQ $B54A      ; Branch if not
C3/B53F:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/B542:	A528    	LDA $28        ; Buy quantity
C3/B544:	C901    	CMP #$01       ; One?
C3/B546:	F056    	BEQ $B59E      ; Abort if so
C3/B548:	C628    	DEC $28        ; Quantity -1

Fork: Buy quantity +10
C3/B54A:	A50B    	LDA $0B        ; Semi-auto keys
C3/B54C:	8908    	BIT #$08       ; Pushing up?
C3/B54E:	F033    	BEQ $B583      ; Branch if not
C3/B550:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/B553:	A90A    	LDA #$0A       ; Quantity: 10
C3/B555:	18      	CLC            ; Prepare ADC
C3/B556:	6528    	ADC $28        ; Add order size
C3/B558:	C56A    	CMP $6A        ; At capacity?
C3/B55A:	F002    	BEQ $B55E      ; Retain if so
C3/B55C:	B021    	BCS $B57F      ; Abort if over
C3/B55E:	8528    	STA $28        ; Set order size
C3/B560:	2053BB  	JSR $BB53      ; Get new cost
C3/B563:	AD6018  	LDA $1860      ; Gold LB
C3/B566:	C5F1    	CMP $F1        ; C- if < cost's
C3/B568:	AD6118  	LDA $1861      ; Gold MB
C3/B56B:	E5F2    	SBC $F2        ; C- if < cost's
C3/B56D:	AD6218  	LDA $1862      ; Gold HB
C3/B570:	E5F3    	SBC $F3        ; So, GP < cost?
C3/B572:	B007    	BCS $B57B      ; Exit if not
C3/B574:	A528    	LDA $28        ; Buy quantity
C3/B576:	38      	SEC            ; Prepare SBC
C3/B577:	E90A    	SBC #$0A       ; Subtract 10
C3/B579:	8528    	STA $28        ; Save changes
C3/B57B:	60      	RTS

Fork: Go to handler for B
C3/B57C:	4C9EB5  	JMP $B59E      ; Handle B

Fork: Leave quantity unchanged...
C3/B57F:	A528    	LDA $28        ; Buy quantity
C3/B581:	80DB    	BRA $B55E      ; Test cost

Fork: Buy quantity -10
C3/B583:	A50B    	LDA $0B        ; Semi-auto keys
C3/B585:	8904    	BIT #$04       ; Pushing down?
C3/B587:	F015    	BEQ $B59E      ; Branch if not
C3/B589:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/B58C:	A528    	LDA $28        ; Buy quantity
C3/B58E:	38      	SEC            ; Prepare SBC
C3/B58F:	E90A    	SBC #$0A       ; Subtract 10
C3/B591:	3007    	BMI $B59A      ; Use 1 if < 0
C3/B593:	C901    	CMP #$01       ; Down to zero?
C3/B595:	9007    	BCC $B59E      ; Abort if so
C3/B597:	8528    	STA $28        ; Save changes
C3/B599:	60      	RTS

Fork: Set buy quantity to 1
C3/B59A:	A901    	LDA #$01       ; Quantity: 1
C3/B59C:	8528    	STA $28        ; Set order size

Fork: Handle B
C3/B59E:	A509    	LDA $09        ; No-autofire keys
C3/B5A0:	8980    	BIT #$80       ; Pushing B?
C3/B5A2:	F006    	BEQ $B5AA      ; Branch if not
C3/B5A4:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/B5A7:	4CB3B7  	JMP $B7B3      ; Exit submenu

Fork: Handle A
C3/B5AA:	A508    	LDA $08        ; No-autofire keys
C3/B5AC:	8980    	BIT #$80       ; Pushing A?
C3/B5AE:	F006    	BEQ $B5B6      ; Exit if not
C3/B5B0:	20CE0E  	JSR $0ECE      ; Sound: Cash
C3/B5B3:	20B7B5  	JSR $B5B7      ; ...
C3/B5B6:	60      	RTS            ; ...
C3/B5B7:	20C2BF  	JSR $BFC2      ; Bought item
C3/B5BA:	A400    	LDY $00        ; Item slot: 1
C3/B5BC:	D96918  	CMP $1869,Y    ; Slot holds it?
C3/B5BF:	F020    	BEQ $B5E1      ; Qty +1 if so
C3/B5C1:	C8      	INY            ; Item slot +1
C3/B5C2:	C00001  	CPY #$0100     ; Done all 256?
C3/B5C5:	D0F5    	BNE $B5BC      ; Loop if not
C3/B5C7:	A400    	LDY $00        ; Item slot: 1
C3/B5C9:	B96918  	LDA $1869,Y    ; Item in slot
C3/B5CC:	C9FF    	CMP #$FF       ; None?
C3/B5CE:	F003    	BEQ $B5D3      ; Overwrite if so
C3/B5D0:	C8      	INY            ; Item slot +1
C3/B5D1:	80F6    	BRA $B5C9      ; Try next slot

Fork: Put bought item in empty slot
C3/B5D3:	A528    	LDA $28        ; Quantity bought
C3/B5D5:	996919  	STA $1969,Y    ; Assign to slot
C3/B5D8:	BF899D7E	LDA $7E9D89,X  ; Bought item
C3/B5DC:	996918  	STA $1869,Y    ; Assign to slot
C3/B5DF:	8009    	BRA $B5EA      ; Reduce GP, etc.

Fork: Add quantity bought to stock
C3/B5E1:	A528    	LDA $28        ; Quantity bought
C3/B5E3:	18      	CLC            ; Prepare ADC
C3/B5E4:	796919  	ADC $1969,Y    ; Add qty owned
C3/B5E7:	996919  	STA $1969,Y    ; Set qty owned

Fork: Reduce party's GP, leave submenu
C3/B5EA:	2053BB  	JSR $BB53      ; Get order value
C3/B5ED:	38      	SEC            ; Prepare SBC
C3/B5EE:	AD6018  	LDA $1860      ; Gold LB
C3/B5F1:	E5F1    	SBC $F1        ; Deduct cost's
C3/B5F3:	8D6018  	STA $1860      ; Save changes
C3/B5F6:	C220    	REP #$20       ; 16-bit A
C3/B5F8:	AD6118  	LDA $1861      ; Gold HBs
C3/B5FB:	E5F2    	SBC $F2        ; Deduct cost's
C3/B5FD:	8D6118  	STA $1861      ; Save changes
C3/B600:	E220    	SEP #$20       ; 8-bit A
C3/B602:	20CE32  	JSR $32CE      ; Cap GP
C3/B605:	A0BDC3  	LDY #$C3BD     ; Text pointer
C3/B608:	20F902  	JSR $02F9      ; Draw "Bye!"
C3/B60B:	4C7DB8  	JMP $B87D      ; Set to exit

28: Return to Buy menu after delay
C3/B60E:	A520    	LDA $20        ; Delay expired?
C3/B610:	D003    	BNE $B615      ; Exit if not
C3/B612:	20B3B7  	JSR $B7B3      ; Leave submenu
C3/B615:	60      	RTS

29: Handle sell item list
C3/B616:	A910    	LDA #$10       ; Reset/Stop desc
C3/B618:	0445    	TSB $45        ; Set menu flag
C3/B61A:	7B      	TDC            ; Clear A
C3/B61B:	852A    	STA $2A        ; List type: Stock
C3/B61D:	20FD0E  	JSR $0EFD      ; Queue list upload
C3/B620:	20641F  	JSR $1F64      ; Handle L and R
C3/B623:	B050    	BCS $B675      ; Exit if pushed
C3/B625:	20227D  	JSR $7D22      ; Handle D-Pad

Fork: Handle B
C3/B628:	A509    	LDA $09        ; No-autofire keys
C3/B62A:	8980    	BIT #$80       ; Pushing B?
C3/B62C:	F006    	BEQ $B634      ; Branch if not
C3/B62E:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/B631:	4C60B7  	JMP $B760      ; Exit submenu

Fork: Handle A
C3/B634:	A508    	LDA $08        ; No-autofire keys
C3/B636:	8980    	BIT #$80       ; Pushing A?
C3/B638:	F03B    	BEQ $B675      ; Exit if not
C3/B63A:	20CBBF  	JSR $BFCB      ; Selected item
C3/B63D:	C9FF    	CMP #$FF       ; Empty slot?
C3/B63F:	F02E    	BEQ $B66F      ; Fail if so
C3/B641:	20B20E  	JSR $0EB2      ; Sound: Click
C3/B644:	A9C0    	LDA #$C0       ; Scrollbar: Off
C3/B646:	1446    	TRB $46        ; Set anim index
C3/B648:	20156A  	JSR $6A15      ; Blank item list
C3/B64B:	20FD0E  	JSR $0EFD      ; Set to upload it
C3/B64E:	206813  	JSR $1368      ; Upload it now
C3/B651:	A92A    	LDA #$2A       ; C3/B676
C3/B653:	8526    	STA $26        ; Next: Order menu
C3/B655:	A20800  	LDX #$0008     ; X: 8
C3/B658:	8655    	STX $55        ; Set cursor's
C3/B65A:	A23400  	LDX #$0034     ; Y: 52
C3/B65D:	8657    	STX $57        ; Set cursor's
C3/B65F:	20A5BA  	JSR $BAA5      ; Draw blue text
C3/B662:	20D3BA  	JSR $BAD3      ; Draw item info
C3/B665:	A0B1C3  	LDY #$C3B1     ; Text pointer
C3/B668:	20F902  	JSR $02F9      ; Draw "How many?"
C3/B66B:	206DB8  	JSR $B86D      ; Switch screen
C3/B66E:	60      	RTS

Fork: Invalid selection
C3/B66F:	20C00E  	JSR $0EC0      ; Play buzzer
C3/B672:	205D30  	JSR $305D      ; Pixelate screen
C3/B675:	60      	RTS

2A: Handle sell order menu
C3/B676:	20E6B4  	JSR $B4E6      ; Set desc flags
C3/B679:	20F8B4  	JSR $B4F8      ; Load description
C3/B67C:	2065BB  	JSR $BB65      ; Get order value
C3/B67F:	20B7BB  	JSR $BBB7      ; Draw qty, offer

Fork: Sell quantity +1
C3/B682:	A50B    	LDA $0B        ; Semi-auto keys
C3/B684:	8901    	BIT #$01       ; Pushing right?
C3/B686:	F00D    	BEQ $B695      ; Branch if not
C3/B688:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/B68B:	A528    	LDA $28        ; Sell quantity
C3/B68D:	C564    	CMP $64        ; Can sell more?
C3/B68F:	F04F    	BEQ $B6E0      ; Abort if not
C3/B691:	E628    	INC $28        ; Quantity +1
C3/B693:	804B    	BRA $B6E0      ; Handle B

Fork: Sell quantity -1
C3/B695:	A50B    	LDA $0B        ; Semi-auto keys
C3/B697:	8902    	BIT #$02       ; Pushing left?
C3/B699:	F00B    	BEQ $B6A6      ; Branch if not
C3/B69B:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/B69E:	A528    	LDA $28        ; Sell quantity
C3/B6A0:	C901    	CMP #$01       ; One?
C3/B6A2:	F03C    	BEQ $B6E0      ; Abort if so
C3/B6A4:	C628    	DEC $28        ; Quantity -1

Fork: Sell quantity +10
C3/B6A6:	A50B    	LDA $0B        ; Semi-auto keys
C3/B6A8:	8908    	BIT #$08       ; Pushing up?
C3/B6AA:	F018    	BEQ $B6C4      ; Branch if not
C3/B6AC:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/B6AF:	A90A    	LDA #$0A       ; Quantity: 10
C3/B6B1:	18      	CLC            ; Prepare ADC
C3/B6B2:	6528    	ADC $28        ; Add order size
C3/B6B4:	C564    	CMP $64        ; Owning enough?
C3/B6B6:	F006    	BEQ $B6BE      ; ...
C3/B6B8:	B004    	BCS $B6BE      ; Limit if not
C3/B6BA:	8528    	STA $28        ; Set order size
C3/B6BC:	8022    	BRA $B6E0      ; Handle B

Fork: Limit sell quantity
C3/B6BE:	A564    	LDA $64        ; Quantity owned
C3/B6C0:	8528    	STA $28        ; Set order size
C3/B6C2:	801C    	BRA $B6E0      ; Handle B

Fork: Sell quantity -10
C3/B6C4:	A50B    	LDA $0B        ; Semi-auto keys
C3/B6C6:	8904    	BIT #$04       ; Pushing down?
C3/B6C8:	F016    	BEQ $B6E0      ; Branch if not
C3/B6CA:	20A30E  	JSR $0EA3      ; Sound: Cursor
C3/B6CD:	A528    	LDA $28        ; Sell quantity
C3/B6CF:	38      	SEC            ; Prepare SBC
C3/B6D0:	E90A    	SBC #$0A       ; Subtract 10
C3/B6D2:	3008    	BMI $B6DC      ; Use 1 if < 0
C3/B6D4:	C901    	CMP #$01       ; Down to zero?
C3/B6D6:	9008    	BCC $B6E0      ; Abort if so
C3/B6D8:	8528    	STA $28        ; Save changes
C3/B6DA:	8004    	BRA $B6E0      ; Handle B

Fork: Set sell quantity to 1
C3/B6DC:	A901    	LDA #$01       ; Quantity: 1
C3/B6DE:	8528    	STA $28        ; Set order size

Fork: Handle B
C3/B6E0:	A509    	LDA $09        ; No-autofire keys
C3/B6E2:	8980    	BIT #$80       ; Pushing B?
C3/B6E4:	F015    	BEQ $B6FB      ; Branch if not
C3/B6E6:	20A90E  	JSR $0EA9      ; Sound: Cursor
C3/B6E9:	A600    	LDX $00        ; Clear X
C3/B6EB:	8639    	STX $39        ; BG2 X-Pos: 0
C3/B6ED:	863B    	STX $3B        ; BG2 Y-Pos: 0
C3/B6EF:	205AB9  	JSR $B95A      ; Clean up BG3
C3/B6F2:	A026C3  	LDY #$C326     ; Text pointer
C3/B6F5:	20F902  	JSR $02F9      ; Draw options
C3/B6F8:	4CCFB7  	JMP $B7CF      ; Exit submenu

Fork: Handle A
C3/B6FB:	A508    	LDA $08        ; No-autofire keys
C3/B6FD:	8980    	BIT #$80       ; Pushing A?
C3/B6FF:	F006    	BEQ $B707      ; Exit if not
C3/B701:	20CE0E  	JSR $0ECE      ; Sound: Cash
C3/B704:	2008B7  	JSR $B708      ; ...
C3/B707:	60      	RTS            ; ...
C3/B708:	2065BB  	JSR $BB65      ; Get order value
C3/B70B:	18      	CLC            ; Prepare ADC
C3/B70C:	AD6018  	LDA $1860      ; Gold LB
C3/B70F:	65F1    	ADC $F1        ; Add cost's
C3/B711:	8D6018  	STA $1860      ; Save changes
C3/B714:	C220    	REP #$20       ; 16-bit A
C3/B716:	AD6118  	LDA $1861      ; Gold HBs
C3/B719:	65F2    	ADC $F2        ; Add cost's + C
C3/B71B:	8D6118  	STA $1861      ; Save changes
C3/B71E:	E220    	SEP #$20       ; 8-bit A
C3/B720:	A564    	LDA $64        ; Quantity owned
C3/B722:	C528    	CMP $28        ; Sold all of it?
C3/B724:	F00E    	BEQ $B734      ; Branch if so
C3/B726:	20CBBF  	JSR $BFCB      ; Define Y
C3/B729:	B96919  	LDA $1969,Y    ; Quantity owned
C3/B72C:	38      	SEC            ; Prepare SBC
C3/B72D:	E528    	SBC $28        ; Deduct qty sold
C3/B72F:	996919  	STA $1969,Y    ; Save changes
C3/B732:	800C    	BRA $B740      ; Skip 5 lines

Fork: Clear item slot, leave submenu
C3/B734:	20CBBF  	JSR $BFCB      ; Define Y
C3/B737:	A9FF    	LDA #$FF       ; Empty item
C3/B739:	996918  	STA $1869,Y    ; Put in slot
C3/B73C:	7B      	TDC            ; Quantity: 0
C3/B73D:	996919  	STA $1969,Y    ; Assign to slot
C3/B740:	20CE32  	JSR $32CE      ; Cap GP
C3/B743:	A0BDC3  	LDY #$C3BD     ; Text pointer
C3/B746:	20F902  	JSR $02F9      ; Draw "Bye!"
C3/B749:	A92B    	LDA #$2B       ; C3/B752
C3/B74B:	8526    	STA $26        ; Next: Exit
C3/B74D:	A920    	LDA #$20       ; Frames: 32
C3/B74F:	8520    	STA $20        ; Set delay
C3/B751:	60      	RTS

2B: Return to Sell menu after delay
C3/B752:	A520    	LDA $20        ; Delay expired?
C3/B754:	D009    	BNE $B75F      ; Exit if not
C3/B756:	A600    	LDX $00        ; Clear X
C3/B758:	8639    	STX $39        ; BG2 X-Pos: 0
C3/B75A:	863B    	STX $3B        ; BG2 Y-Pos: 0
C3/B75C:	20CFB7  	JSR $B7CF      ; Exit submenu
C3/B75F:	60      	RTS

Return to main shop menu
C3/B760:	A9C0    	LDA #$C0       ; Scrollbar: Off
C3/B762:	1446    	TRB $46        ; Set anim index
C3/B764:	6447    	STZ $47        ; Actors: Off
C3/B766:	2086B8  	JSR $B886      ; Load navig data
C3/B769:	208FB8  	JSR $B88F      ; Relocate cursor
C3/B76C:	20FD0E  	JSR $0EFD      ; Set to upload BG1
C3/B76F:	204EB9  	JSR $B94E      ; Clear BG1 maps
C3/B772:	206813  	JSR $1368      ; Refresh screen
C3/B775:	20390F  	JSR $0F39      ; Queue BG3 upload
C3/B778:	205AB9  	JSR $B95A      ; Clean up BG3
C3/B77B:	A026C3  	LDY #$C326     ; Text pointer
C3/B77E:	20F902  	JSR $02F9      ; Draw options
C3/B781:	A06FC3  	LDY #$C36F     ; Text pointer
C3/B784:	20F902  	JSR $02F9      ; Draw greeting
C3/B787:	A400    	LDY $00        ; Clear Y
C3/B789:	8439    	STY $39        ; Reset BG2 X-Pos
C3/B78B:	843B    	STY $3B        ; Reset BG2 Y-Pos
C3/B78D:	A925    	LDA #$25       ; C3/B49B
C3/B78F:	8526    	STA $26        ; Next: Shop menu
C3/B791:	60      	RTS

Handle selected option in shop menu
C3/B792:	7B      	TDC            ; Clear A
C3/B793:	A54B    	LDA $4B        ; Cursor slot
C3/B795:	0A      	ASL A          ; Double it
C3/B796:	AA      	TAX            ; Index it
C3/B797:	7C9AB7  	JMP ($B79A,X)  ; Handle option

Jump table
C3/B79A:	A3B7    	; BUY
C3/B79C:	C7B7    	; SELL
C3/B79E:	A0B7    	; EXIT

Exit shop
C3/B7A0:	4CB3B4  	JMP $B4B3      ; Queue menu exit

Initialize Buy menu
C3/B7A3:	20A0B8  	JSR $B8A0      ; Load navig data
C3/B7A6:	20A9B8  	JSR $B8A9      ; Relocate cursor
C3/B7A9:	A908    	LDA #$08       ; Arm waving: On
C3/B7AB:	1447    	TRB $47        ; Never off...
C3/B7AD:	209AC0  	JSR $C09A      ; Create actors
C3/B7B0:	203BC2  	JSR $C23B      ; Create signs
C3/B7B3:	A00001  	LDY #$0100     ; X: 256
C3/B7B6:	8439    	STY $39        ; Set BG2 X-Pos
C3/B7B8:	A400    	LDY $00        ; Y: 0
C3/B7BA:	843B    	STY $3B        ; Set BG2 Y-Pos
C3/B7BC:	2086B9  	JSR $B986      ; Draw all text
C3/B7BF:	20FDBC  	JSR $BCFD      ; Build sign list
C3/B7C2:	A926    	LDA #$26       ; C3/B4BD
C3/B7C4:	8526    	STA $26        ; Next: Buy list
C3/B7C6:	60      	RTS

Initialize Sell menu
C3/B7C7:	20390F  	JSR $0F39      ; Queue BG3 upload
C3/B7CA:	20E0BB  	JSR $BBE0      ; Cursor/list/bar
C3/B7CD:	8003    	BRA $B7D2      ; Skip a line

Return to Sell menu
C3/B7CF:	2002BC  	JSR $BC02      ; Draw list; bar
C3/B7D2:	205AB9  	JSR $B95A      ; Draw title, GP
C3/B7D5:	A026C3  	LDY #$C326     ; Text pointer
C3/B7D8:	20F902  	JSR $02F9      ; Draw options
C3/B7DB:	A0A2C3  	LDY #$C3A2     ; Text pointer
C3/B7DE:	20F902  	JSR $02F9      ; Draw question
C3/B7E1:	A929    	LDA #$29       ; C3/B616
C3/B7E3:	8526    	STA $26        ; Next: Sell list
C3/B7E5:	60      	RTS

Invoke buy order menu if justified
C3/B7E6:	20C2BF  	JSR $BFC2      ; Selected item
C3/B7E9:	202183  	JSR $8321      ; Compute index
C3/B7EC:	AE3421  	LDX $2134      ; Load it
C3/B7EF:	BF0050D8	LDA $D85000,X  ; Properties
C3/B7F3:	2907    	AND #$07       ; Tool?
C3/B7F5:	D013    	BNE $B80A      ; Branch if not
C3/B7F7:	2092BC  	JSR $BC92      ; Define $64
C3/B7FA:	A564    	LDA $64        ; Owning none?
C3/B7FC:	F00C    	BEQ $B80A      ; Test GP if so
C3/B7FE:	20C00E  	JSR $0EC0      ; Play buzzer
C3/B801:	A0F5C3  	LDY #$C3F5     ; Text pointer
C3/B804:	20F902  	JSR $02F9      ; Draw excuse
C3/B807:	4C7DB8  	JMP $B87D      ; Set to exit

Fork: Check if enough money
C3/B80A:	AD6218  	LDA $1862      ; GP > 65535?
C3/B80D:	D02F    	BNE $B83E      ; Ample if so
C3/B80F:	7B      	TDC            ; ...
C3/B810:	A54B    	LDA $4B        ; Selected slot
C3/B812:	0A      	ASL A          ; Double it
C3/B813:	AA      	TAX            ; Index it
C3/B814:	C220    	REP #$20       ; 16-bit A
C3/B816:	BF099F7E	LDA $7E9F09,X  ; Item's price
C3/B81A:	CD6018  	CMP $1860      ; Got as much?
C3/B81D:	E220    	SEP #$20       ; 8-bit A
C3/B81F:	F01D    	BEQ $B83E      ; Ample if so
C3/B821:	901B    	BCC $B83E      ; Or if more
C3/B823:	20C00E  	JSR $0EC0      ; Play buzzer
C3/B826:	A0CEC3  	LDY #$C3CE     ; Text pointer
C3/B829:	20F902  	JSR $02F9      ; Draw excuse
C3/B82C:	4C7DB8  	JMP $B87D      ; Set to exit

Sub: Define buy quantity limit
C3/B82F:	A564    	LDA $64        ; Qty in stock
C3/B831:	18      	CLC            ; Prepare ADC
C3/B832:	6565    	ADC $65        ; Add qty worn
C3/B834:	8569    	STA $69        ; Set total owned
C3/B836:	A963    	LDA #$63       ; Quantity: 99
C3/B838:	38      	SEC            ; Prepare SBC
C3/B839:	E569    	SBC $69        ; Sub total owned
C3/B83B:	856A    	STA $6A        ; Set buy limit
C3/B83D:	60      	RTS

Fork: Check if owning 99
C3/B83E:	A569    	LDA $69        ; Qty owned/worn
C3/B840:	C963    	CMP #$63       ; Under 99?
C3/B842:	900C    	BCC $B850      ; Okay if so
C3/B844:	20C00E  	JSR $0EC0      ; Play buzzer
C3/B847:	A0E2C3  	LDY #$C3E2     ; Text pointer
C3/B84A:	20F902  	JSR $02F9      ; Draw "Too many!"
C3/B84D:	4C7DB8  	JMP $B87D      ; Set to exit

Fork: Can buy item
C3/B850:	20B20E  	JSR $0EB2      ; Sound: Click
C3/B853:	A20800  	LDX #$0008     ; X: 8
C3/B856:	8655    	STX $55        ; Set cursor's
C3/B858:	A23400  	LDX #$0034     ; Y: 52
C3/B85B:	8657    	STX $57        ; Set cursor's
C3/B85D:	A927    	LDA #$27       ; C3/B505
C3/B85F:	8526    	STA $26        ; Next: Order menu
C3/B861:	20A5BA  	JSR $BAA5      ; Draw blue text
C3/B864:	20BABA  	JSR $BABA      ; Draw item info
C3/B867:	A096C3  	LDY #$C396     ; Text pointer
C3/B86A:	20F902  	JSR $02F9      ; Draw "How many?"

Fork: Switch screen
C3/B86D:	A00001  	LDY #$0100     ; Y: 256
C3/B870:	843B    	STY $3B        ; Set BG2 Y-Pos
C3/B872:	A400    	LDY $00        ; X: 0
C3/B874:	8439    	STY $39        ; Set BG2 X-Pos
C3/B876:	2096A7  	JSR $A796      ; Clear desc GFX
C3/B879:	20F4A6  	JSR $A6F4      ; Build desc map
C3/B87C:	60      	RTS

Set to return to Buy menu after delay
C3/B87D:	A928    	LDA #$28       ; C3/B60E
C3/B87F:	8526    	STA $26        ; Next: Exit
C3/B881:	A920    	LDA #$20       ; Frames: 32
C3/B883:	8520    	STA $20        ; Set delay
C3/B885:	60      	RTS

Load navigation data for main shop menu
C3/B886:	A095B8  	LDY #$B895     ; C3/B895
C3/B889:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for main shop menu
C3/B88C:	202D07  	JSR $072D      ; Handle D-Pad
C3/B88F:	A09AB8  	LDY #$B89A     ; C3/B89A
C3/B892:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for main shop menu
C3/B895:	01      	; Wraps horizontally
C3/B896:	00      	; Initial column
C3/B897:	00      	; Initial row
C3/B898:	03      	; 3 columns
C3/B899:	01      	; 1 row

Cursor positions for main shop menu
C3/B89A:	0834    	; BUY
C3/B89C:	3034    	; SELL
C3/B89E:	6034    	; EXIT

Load navigation data for Buy menu
C3/B8A0:	A0AFB8  	LDY #$B8AF     ; C3/B8AF
C3/B8A3:	4CFE05  	JMP $05FE      ; Load navig data

Handle D-Pad for Buy menu
C3/B8A6:	202D07  	JSR $072D      ; Handle D-Pad
C3/B8A9:	A0B4B8  	LDY #$B8B4     ; C3/B8B4
C3/B8AC:	4C4006  	JMP $0640      ; Relocate cursor

Navigation data for Buy menu
C3/B8AF:	80      	; Wraps vertically
C3/B8B0:	00      	; Initial column
C3/B8B1:	00      	; Initial row
C3/B8B2:	01      	; 1 column
C3/B8B3:	08      	; 8 rows

Cursor positions for Buy menu
C3/B8B4:	0034    	; Item 1
C3/B8B6:	0040    	; Item 2
C3/B8B8:	004C    	; Item 3
C3/B8BA:	0058    	; Item 4
C3/B8BC:	0064    	; Item 5
C3/B8BE:	0070    	; Item 6
C3/B8C0:	007C    	; Item 7
C3/B8C2:	0088    	; Item 8

Draw main shop menu and submenu windows, set to update description
C3/B8C4:	20286A  	JSR $6A28      ; Clear BG2 map A
C3/B8C7:	202D6A  	JSR $6A2D      ; Clear BG2 map B
C3/B8CA:	20326A  	JSR $6A32      ; Clear BG2 map C
C3/B8CD:	A01BBC  	LDY #$BC1B     ; C3/BC1B
C3/B8D0:	204103  	JSR $0341      ; Draw title box A
C3/B8D3:	A01FBC  	LDY #$BC1F     ; C3/BC1F
C3/B8D6:	204103  	JSR $0341      ; Draw chat box A
C3/B8D9:	A023BC  	LDY #$BC23     ; C3/BC23
C3/B8DC:	204103  	JSR $0341      ; Draw option box
C3/B8DF:	A027BC  	LDY #$BC27     ; C3/BC27
C3/B8E2:	204103  	JSR $0341      ; Draw GP box
C3/B8E5:	A02BBC  	LDY #$BC2B     ; C3/BC2B
C3/B8E8:	204103  	JSR $0341      ; Draw item box A
C3/B8EB:	A02FBC  	LDY #$BC2F     ; C3/BC2F
C3/B8EE:	204103  	JSR $0341      ; Draw title box B
C3/B8F1:	A033BC  	LDY #$BC33     ; C3/BC33
C3/B8F4:	204103  	JSR $0341      ; Draw chat box B
C3/B8F7:	A03BBC  	LDY #$BC3B     ; C3/BC3B
C3/B8FA:	204103  	JSR $0341      ; Draw actor box A
C3/B8FD:	A037BC  	LDY #$BC37     ; C3/BC37
C3/B900:	204103  	JSR $0341      ; Draw item box B
C3/B903:	A03FBC  	LDY #$BC3F     ; C3/BC3F
C3/B906:	204103  	JSR $0341      ; Draw title box C
C3/B909:	A053BC  	LDY #$BC53     ; C3/BC53
C3/B90C:	204103  	JSR $0341      ; Draw amounts box
C3/B90F:	A04BBC  	LDY #$BC4B     ; C3/BC4B
C3/B912:	204103  	JSR $0341      ; Draw desc box
C3/B915:	A043BC  	LDY #$BC43     ; C3/BC43
C3/B918:	204103  	JSR $0341      ; Draw chat box C
C3/B91B:	A04FBC  	LDY #$BC4F     ; C3/BC4F
C3/B91E:	204103  	JSR $0341      ; Draw actor box B
C3/B921:	A047BC  	LDY #$BC47     ; C3/BC47
C3/B924:	204103  	JSR $0341      ; Draw item box C
C3/B927:	20520E  	JSR $0E52      ; Upload BG2 A+B
C3/B92A:	20600E  	JSR $0E60      ; Upload BG2 C+D
C3/B92D:	204EB9  	JSR $B94E      ; Clear BG1 maps
C3/B930:	20280E  	JSR $0E28      ; Upload BG1 A+B
C3/B933:	20440E  	JSR $0E44      ; Upload BG1 C+D...
C3/B936:	205AB9  	JSR $B95A      ; Draw title, GP
C3/B939:	A026C3  	LDY #$C326     ; Text pointer
C3/B93C:	20F902  	JSR $02F9      ; Draw options
C3/B93F:	A06FC3  	LDY #$C36F     ; Text pointer
C3/B942:	20F902  	JSR $02F9      ; Draw greeting
C3/B945:	20991B  	JSR $1B99      ; Queue desc anim
C3/B948:	206E0E  	JSR $0E6E      ; Upload BG3 A+B
C3/B94B:	4C7C0E  	JMP $0E7C      ; Upload BG3 C+D

Clear BG1 tilemaps (for shop)
C3/B94E:	20156A  	JSR $6A15      ; Clear BG1 map A
C3/B951:	20196A  	JSR $6A19      ; Clear BG1 map B
C3/B954:	201E6A  	JSR $6A1E      ; Clear BG1 map C
C3/B957:	4C236A  	JMP $6A23      ; Clear BG1 map D

Draw shop title and party's gold, clear rest of BG3
C3/B95A:	203C6A  	JSR $6A3C      ; Clear BG3 map A
C3/B95D:	20416A  	JSR $6A41      ; Clear BG3 map B
C3/B960:	20466A  	JSR $6A46      ; Clear BG3 map C
C3/B963:	20D3BF  	JSR $BFD3      ; Draw title
C3/B966:	20F7C2  	JSR $C2F7      ; ...
C3/B969:	A038C3  	LDY #$C338     ; Text pointer
C3/B96C:	20F902  	JSR $02F9      ; Draw "GP"
C3/B96F:	20F2C2  	JSR $C2F2      ; Color: User's
C3/B972:	AC6018  	LDY $1860      ; Gold LBs
C3/B975:	84F1    	STY $F1        ; Memorize it
C3/B977:	AD6218  	LDA $1862      ; Gold HB
C3/B97A:	85F3    	STA $F3        ; Memorize it
C3/B97C:	208205  	JSR $0582      ; Turn into text
C3/B97F:	A2337A  	LDX #$7A33     ; Text position
C3/B982:	20AC04  	JSR $04AC      ; Draw GP total
C3/B985:	60      	RTS

Draw all text for Buy menu
C3/B986:	205AB9  	JSR $B95A      ; Draw title, GP
C3/B989:	A085C3  	LDY #$C385     ; Text pointer
C3/B98C:	20F902  	JSR $02F9      ; Draw "Help..."
C3/B98F:	20E1C2  	JSR $C2E1      ; Draw Owned, Eqpd
C3/B992:	A400    	LDY $00        ; Clear Y
C3/B994:	84F1    	STY $F1        ; Menu slot: 1
C3/B996:	64E6    	STZ $E6        ; List size: 0
C3/B998:	C220    	REP #$20       ; 16-bit A
C3/B99A:	A5F1    	LDA $F1        ; Menu slot
C3/B99C:	0A      	ASL A          ; Double it
C3/B99D:	AA      	TAX            ; Index it
C3/B99E:	BFFCB9C3	LDA $C3B9FC,X  ; Tilemap ptr
C3/B9A2:	8F899E7E	STA $7E9E89    ; Set position
C3/B9A6:	A5F1    	LDA $F1        ; Menu slot
C3/B9A8:	18      	CLC            ; ...
C3/B9A9:	6567    	ADC $67        ; Add shop index
C3/B9AB:	1A      	INC A          ; Skip flags
C3/B9AC:	AA      	TAX            ; Index it
C3/B9AD:	E220    	SEP #$20       ; 8-bit A
C3/B9AF:	BFC07AC4	LDA $C47AC0,X  ; Shop item
C3/B9B3:	A6F1    	LDX $F1        ; Menu slot
C3/B9B5:	9F899D7E	STA $7E9D89,X  ; Assign item
C3/B9B9:	C9FF    	CMP #$FF       ; Nothing?
C3/B9BB:	F027    	BEQ $B9E4      ; Branch if so
C3/B9BD:	2068C0  	JSR $C068      ; Load name
C3/B9C0:	20D97F  	JSR $7FD9      ; Draw name
C3/B9C3:	A6F1    	LDX $F1        ; Menu slot
C3/B9C5:	BF899D7E	LDA $7E9D89,X  ; Item in slot
C3/B9C9:	202183  	JSR $8321      ; Compute index
C3/B9CC:	200CBA  	JSR $BA0C      ; Define price
C3/B9CF:	202E05  	JSR $052E      ; Turn into text
C3/B9D2:	C220    	REP #$20       ; 16-bit A
C3/B9D4:	AF899E7E	LDA $7E9E89    ; Tilemap ptr
C3/B9D8:	18      	CLC            ; Prepare ADC
C3/B9D9:	691A00  	ADC #$001A     ; Skip item name
C3/B9DC:	AA      	TAX            ; Put sum in X
C3/B9DD:	E220    	SEP #$20       ; 8-bit A
C3/B9DF:	209A04  	JSR $049A      ; Draw price
C3/B9E2:	E6E6    	INC $E6        ; List size +1
C3/B9E4:	A4F1    	LDY $F1        ; Menu slot
C3/B9E6:	C8      	INY            ; Menu slot +1
C3/B9E7:	84F1    	STY $F1        ; Save changes
C3/B9E9:	C00800  	CPY #$0008     ; Done 8 items?
C3/B9EC:	D0AA    	BNE $B998      ; Loop if not
C3/B9EE:	A5E6    	LDA $E6        ; List size
C3/B9F0:	8554    	STA $54        ; Set cursor limit
C3/B9F2:	2057BC  	JSR $BC57      ; Get qties owned
C3/B9F5:	2084BC  	JSR $BC84      ; Draw qty owned
C3/B9F8:	20A8BC  	JSR $BCA8      ; Draw qty worn
C3/B9FB:	60      	RTS

Tilemap pointers for Buy menu
C3/B9FC:	0D7A    	; Item 1
C3/B9FE:	8D7A    	; Item 2
C3/BA00:	0D7B    	; Item 3
C3/BA02:	8D7B    	; Item 4
C3/BA04:	0D7C    	; Item 5
C3/BA06:	8D7C    	; Item 6
C3/BA08:	0D7D    	; Item 7
C3/BA0A:	8D7D    	; Item 8

Define cost to buy item
C3/BA0C:	C220    	REP #$20       ; 16-bit A
C3/BA0E:	AD3421  	LDA $2134      ; Item index
C3/BA11:	18      	CLC            ; Prepare ADC
C3/BA12:	691C00  	ADC #$001C     ; Point to price
C3/BA15:	AA      	TAX            ; Index sum
C3/BA16:	BF0050D8	LDA $D85000,X  ; Base price
C3/BA1A:	202CBA  	JSR $BA2C      ; Apply multiplier
C3/BA1D:	85F3    	STA $F3        ; Memorize result
C3/BA1F:	A5F1    	LDA $F1        ; Menu slot
C3/BA21:	0A      	ASL A          ; Double it
C3/BA22:	AA      	TAX            ; Index it
C3/BA23:	A5F3    	LDA $F3        ; Modified price
C3/BA25:	9F099F7E	STA $7E9F09,X  ; Set item price
C3/BA29:	E220    	SEP #$20       ; 8-bit A
C3/BA2B:	60      	RTS

Apply price multiplier for Buy menu
C3/BA2C:	48      	PHA            ; Save price
C3/BA2D:	A667    	LDX $67        ; Shop index
C3/BA2F:	7B      	TDC            ; Clear A
C3/BA30:	E220    	SEP #$20       ; 8-bit A
C3/BA32:	BFC07AC4	LDA $C47AC0,X  ; Shop flags
C3/BA36:	2938    	AND #$38       ; Get modifier
C3/BA38:	C220    	REP #$20       ; 16-bit A
C3/BA3A:	4A      	LSR A          ; Put in b2-b4
C3/BA3B:	4A      	LSR A          ; Put in b1-b3
C3/BA3C:	AA      	TAX            ; Index it
C3/BA3D:	68      	PLA            ; Base price
C3/BA3E:	7C41BA  	JMP ($BA41,X)  ; Apply modifier

Jump table for price multipliers
C3/BA41:	55BA    	; 100%
C3/BA43:	4FBA    	; 150%
C3/BA45:	56BA    	; 200%
C3/BA47:	58BA    	; 50%
C3/BA49:	5ABA    	; 50% if female leads, 150% otherwise
C3/BA4B:	76BA    	; 50% if male leads, 150% otherwise
C3/BA4D:	92BA    	; 50% if Edgar leads

Increase price by 50% (unused)
C3/BA4F:	85E7    	STA $E7        ; Save price
C3/BA51:	4A      	LSR A          ; Halve it
C3/BA52:	18      	CLC            ; Prepare ADC
C3/BA53:	65E7    	ADC $E7        ; Add base price
C3/BA55:	60      	RTS

Double price (unused)
C3/BA56:	0A      	ASL A          ; Double price
C3/BA57:	60      	RTS

Halve price
C3/BA58:	4A      	LSR A          ; Halve price
C3/BA59:	60      	RTS

Halve price if female leads, raise by 50% otherwise (unused)
C3/BA5A:	48      	PHA            ; Save price
C3/BA5B:	E220    	SEP #$20       ; 8-bit A
C3/BA5D:	AD0202  	LDA $0202      ; Leader sprite
C3/BA60:	C906    	CMP #$06       ; Celes?
C3/BA62:	F00D    	BEQ $BA71      ; Halve if so
C3/BA64:	C908    	CMP #$08       ; Relm?
C3/BA66:	F009    	BEQ $BA71      ; Halve if so
C3/BA68:	C900    	CMP #$00       ; Terra?
C3/BA6A:	F005    	BEQ $BA71      ; Halve if so
C3/BA6C:	C220    	REP #$20       ; 16-bit A
C3/BA6E:	68      	PLA            ; Base price
C3/BA6F:	80DE    	BRA $BA4F      ; Add 50%
C3/BA71:	C220    	REP #$20       ; 16-bit A
C3/BA73:	68      	PLA            ; Base price
C3/BA74:	80E2    	BRA $BA58      ; Halve it

Halve price if male leads, raise by 50% otherwise (unused)
C3/BA76:	48      	PHA            ; Save price
C3/BA77:	E220    	SEP #$20       ; 8-bit A
C3/BA79:	AD0202  	LDA $0202      ; Leader sprite
C3/BA7C:	C906    	CMP #$06       ; Celes?
C3/BA7E:	F00D    	BEQ $BA8D      ; +50% if so
C3/BA80:	C908    	CMP #$08       ; Relm?
C3/BA82:	F009    	BEQ $BA8D      ; +50% if so
C3/BA84:	C900    	CMP #$00       ; Terra?
C3/BA86:	F005    	BEQ $BA8D      ; +50% if so
C3/BA88:	C220    	REP #$20       ; 16-bit A
C3/BA8A:	68      	PLA            ; Base price
C3/BA8B:	80CB    	BRA $BA58      ; Halve it
C3/BA8D:	C220    	REP #$20       ; 16-bit A
C3/BA8F:	68      	PLA            ; Base price
C3/BA90:	80BD    	BRA $BA4F      ; Add 50%

Halve price if Edgar leads
C3/BA92:	48      	PHA            ; Save price
C3/BA93:	E220    	SEP #$20       ; 8-bit A
C3/BA95:	AD0202  	LDA $0202      ; Leader sprite
C3/BA98:	C904    	CMP #$04       ; Edgar?
C3/BA9A:	F004    	BEQ $BAA0      ; Halve if so
C3/BA9C:	C220    	REP #$20       ; 16-bit A
C3/BA9E:	68      	PLA            ; Base price
C3/BA9F:	60      	RTS            ; Exit
C3/BAA0:	C220    	REP #$20       ; 16-bit A
C3/BAA2:	68      	PLA            ; Base price
C3/BAA3:	80B3    	BRA $BA58      ; Halve it

Draw blue text for shop order menu, position item name
C3/BAA5:	20390F  	JSR $0F39      ; Queue BG3 upload
C3/BAA8:	205AB9  	JSR $B95A      ; Clean up BG3
C3/BAAB:	20E1C2  	JSR $C2E1      ; Draw Owned, Eqpd
C3/BAAE:	C220    	REP #$20       ; 16-bit A
C3/BAB0:	A90F7A  	LDA #$7A0F     ; Tilemap ptr
C3/BAB3:	8F899E7E	STA $7E9E89    ; Set item position
C3/BAB7:	E220    	SEP #$20       ; 8-bit A
C3/BAB9:	60      	RTS

Draw item specs for buy order menu, reset buy quantity
C3/BABA:	20ECBA  	JSR $BAEC      ; Draw power info
C3/BABD:	2084BC  	JSR $BC84      ; Draw qty owned
C3/BAC0:	20A8BC  	JSR $BCA8      ; Draw qty worn
C3/BAC3:	20C2BF  	JSR $BFC2      ; Selected item
C3/BAC6:	2068C0  	JSR $C068      ; Load name
C3/BAC9:	20D97F  	JSR $7FD9      ; Draw name
C3/BACC:	A901    	LDA #$01       ; Quantity: 1
C3/BACE:	8528    	STA $28        ; Set order size
C3/BAD0:	4CAEBB  	JMP $BBAE      ; Draw size, value

Draw item specs for sell order menu, reset sell quantity
C3/BAD3:	209DBC  	JSR $BC9D      ; Draw qty owned
C3/BAD6:	2066BF  	JSR $BF66      ; Draw qty worn
C3/BAD9:	20F2BA  	JSR $BAF2      ; Draw power info
C3/BADC:	20CBBF  	JSR $BFCB      ; Selected item
C3/BADF:	2068C0  	JSR $C068      ; Load name
C3/BAE2:	20D97F  	JSR $7FD9      ; Draw name
C3/BAE5:	A901    	LDA #$01       ; Quantity: 1
C3/BAE7:	8528    	STA $28        ; Set order size
C3/BAE9:	4CB7BB  	JMP $BBB7      ; Draw size, value

Draw power-related text for Buy menu
C3/BAEC:	20C2BF  	JSR $BFC2      ; Selected item
C3/BAEF:	4CF8BA  	JMP $BAF8      ; Draw power info

Draw power-related text for Sell menu
C3/BAF2:	20CBBF  	JSR $BFCB      ; Selected item
C3/BAF5:	4CF8BA  	JMP $BAF8      ; ...

Draw power-related text for Buy or Sell menu
C3/BAF8:	202183  	JSR $8321      ; Compute index
C3/BAFB:	AE3421  	LDX $2134      ; Load it
C3/BAFE:	BF0050D8	LDA $D85000,X  ; Properties
C3/BB02:	2907    	AND #$07       ; Tool?
C3/BB04:	F04C    	BEQ $BB52      ; Exit if so
C3/BB06:	C906    	CMP #$06       ; Consumable?
C3/BB08:	F048    	BEQ $BB52      ; Exit if so
C3/BB0A:	C901    	CMP #$01       ; Weapon?
C3/BB0C:	F022    	BEQ $BB30      ; Branch if so
C3/BB0E:	20F2C2  	JSR $C2F2      ; Color: User's
C3/BB11:	BF1450D8	LDA $D85014,X  ; Defense
C3/BB15:	20E004  	JSR $04E0      ; Turn into text
C3/BB18:	A2A97B  	LDX #$7BA9     ; Text position
C3/BB1B:	20C004  	JSR $04C0      ; Draw 3 digits
C3/BB1E:	20F7C2  	JSR $C2F7      ; Color: Blue
C3/BB21:	A061C3  	LDY #$C361     ; Text pointer
C3/BB24:	20F902  	JSR $02F9      ; Draw "Defense"
C3/BB27:	A06BC3  	LDY #$C36B     ; Text pointer
C3/BB2A:	20F902  	JSR $02F9      ; Draw ""
C3/BB2D:	4CF2C2  	JMP $C2F2      ; Color: User's

Fork: Handle weapon
C3/BB30:	20F2C2  	JSR $C2F2      ; Color: User's
C3/BB33:	BF1450D8	LDA $D85014,X  ; Bat.Pwr
C3/BB37:	20E004  	JSR $04E0      ; Turn into text
C3/BB3A:	A2A97B  	LDX #$7BA9     ; Text position
C3/BB3D:	20C004  	JSR $04C0      ; Draw 3 digits
C3/BB40:	20F7C2  	JSR $C2F7      ; Color: Blue
C3/BB43:	A057C3  	LDY #$C357     ; Text pointer
C3/BB46:	20F902  	JSR $02F9      ; Draw "Bat Pwr"
C3/BB49:	A06BC3  	LDY #$C36B     ; Text pointer
C3/BB4C:	20F902  	JSR $02F9      ; Draw ""
C3/BB4F:	20F2C2  	JSR $C2F2      ; Color: User's
C3/BB52:	60      	RTS            ; For Owned, etc.

Compute buy order value
C3/BB53:	7B      	TDC            ; Clear A
C3/BB54:	A54B    	LDA $4B        ; Item slot
C3/BB56:	0A      	ASL A          ; Double it
C3/BB57:	AA      	TAX            ; Index it
C3/BB58:	C220    	REP #$20       ; 16-bit A
C3/BB5A:	BF099F7E	LDA $7E9F09,X  ; Price asked
C3/BB5E:	85F1    	STA $F1        ; Memorize it
C3/BB60:	E220    	SEP #$20       ; 8-bit A
C3/BB62:	4C81BB  	JMP $BB81      ; Price x size

Compute sell order value
C3/BB65:	20CBBF  	JSR $BFCB      ; Selected item
C3/BB68:	202183  	JSR $8321      ; Compute index
C3/BB6B:	C220    	REP #$20       ; 16-bit A
C3/BB6D:	AD3421  	LDA $2134      ; Load it
C3/BB70:	18      	CLC            ; Prepare ADC
C3/BB71:	691C00  	ADC #$001C     ; Point to price
C3/BB74:	AA      	TAX            ; Index sum
C3/BB75:	BF0050D8	LDA $D85000,X  ; Base price
C3/BB79:	4A      	LSR A          ; Halve it
C3/BB7A:	85F1    	STA $F1        ; Memorize it
C3/BB7C:	E220    	SEP #$20       ; 8-bit A
C3/BB7E:	4C81BB  	JMP $BB81      ; ...

Compute buy or sell order value
C3/BB81:	A5F1    	LDA $F1        ; Item value LB
C3/BB83:	8D0242  	STA $4202      ; Set multiplicand
C3/BB86:	A528    	LDA $28        ; Item quantity
C3/BB88:	8D0342  	STA $4203      ; Set multiplier
C3/BB8B:	64EF    	STZ $EF        ; Product's B3: 0
C3/BB8D:	EA      	NOP
C3/BB8E:	EA      	NOP
C3/BB8F:	AE1642  	LDX $4216      ; Product
C3/BB92:	86ED    	STX $ED        ; Memorize it
C3/BB94:	A5F2    	LDA $F2        ; Item value HB
C3/BB96:	8D0242  	STA $4202      ; Set multiplicand
C3/BB99:	A528    	LDA $28        ; Item quantity
C3/BB9B:	8D0342  	STA $4203      ; Set multiplier
C3/BB9E:	C221    	REP #$21       ; 16-bit A; C-
C3/BBA0:	A5EE    	LDA $EE        ; Old product HBs
C3/BBA2:	6D1642  	ADC $4216      ; Add new product
C3/BBA5:	85F2    	STA $F2        ; Set total HBs
C3/BBA7:	E220    	SEP #$20       ; 8-bit A
C3/BBA9:	A5ED    	LDA $ED        ; Old product LB
C3/BBAB:	85F1    	STA $F1        ; Set total LB
C3/BBAD:	60      	RTS

Draw buy order size and value
C3/BBAE:	20C0BB  	JSR $BBC0      ; Draw order size
C3/BBB1:	2053BB  	JSR $BB53      ; Get order value
C3/BBB4:	4CD7BB  	JMP $BBD7      ; Draw order value

Draw sell order size and value
C3/BBB7:	20C0BB  	JSR $BBC0      ; Draw order size
C3/BBBA:	2065BB  	JSR $BB65      ; Get order value
C3/BBBD:	4CD7BB  	JMP $BBD7      ; Draw order value

Draw traded item's quantity and "GP" below
C3/BBC0:	20F7C2  	JSR $C2F7      ; Color: Blue
C3/BBC3:	A03DC3  	LDY #$C33D     ; Text pointer
C3/BBC6:	20F902  	JSR $02F9      ; Draw "GP"
C3/BBC9:	20F2C2  	JSR $C2F2      ; Color: User's
C3/BBCC:	A528    	LDA $28        ; Order size
C3/BBCE:	20E004  	JSR $04E0      ; Turn into text
C3/BBD1:	A22B7A  	LDX #$7A2B     ; Text position
C3/BBD4:	4CB604  	JMP $04B6      ; Draw 2 digits

Draw order value (held in $F1-$F4)
C3/BBD7:	208205  	JSR $0582      ; Turn into text
C3/BBDA:	A2A17A  	LDX #$7AA1     ; Text position
C3/BBDD:	4CAC04  	JMP $04AC      ; Draw 7 digits

Initialize cursor data and draw inventory for Sell menu
C3/BBE0:	A901    	LDA #$01       ; 64x32 at $0000
C3/BBE2:	8D0721  	STA $2107      ; Set BG1 map loc
C3/BBE5:	A9F5    	LDA #$F5       ; Top row: Slot 246
C3/BBE7:	855C    	STA $5C        ; Set scroll limit
C3/BBE9:	A90A    	LDA #$0A       ; Onscreen rows: 10
C3/BBEB:	855A    	STA $5A        ; Set rows per page
C3/BBED:	A901    	LDA #$01       ; Onscreen cols: 1
C3/BBEF:	855B    	STA $5B        ; Set cols per page
C3/BBF1:	201C7D  	JSR $7D1C      ; Load navig data
C3/BBF4:	A44D    	LDY $4D        ; Cursor position
C3/BBF6:	844F    	STY $4F        ; Set as list loc
C3/BBF8:	A54A    	LDA $4A        ; Scroll position
C3/BBFA:	18      	CLC            ; Prepare ADC
C3/BBFB:	6550    	ADC $50        ; Add list V-Slot
C3/BBFD:	8550    	STA $50        ; Set list V-Slot
C3/BBFF:	20257D  	JSR $7D25      ; Relocate cursor
C3/BC02:	200D7E  	JSR $7E0D      ; Draw inventory
C3/BC05:	201F09  	JSR $091F      ; Create scrollbar
C3/BC08:	C220    	REP #$20       ; 16-bit A
C3/BC0A:	A97000  	LDA #$0070     ; V-Speed: 0.44 px
C3/BC0D:	9F4A357E	STA $7E354A,X  ; Set scrollbar's
C3/BC11:	A95800  	LDA #$0058     ; Y: 88
C3/BC14:	9FCA347E	STA $7E34CA,X  ; Set scrollbar's
C3/BC18:	E220    	SEP #$20       ; 8-bit A
C3/BC1A:	60      	RTS

Window layout for Sell menu and main shop menu
C3/BC1B:	8B580702	; 09x04 at $588B (Title)
C3/BC1F:	9D581302	; 21x04 at $589D (Dialogue)
C3/BC23:	8B591002	; 18x04 at $598B (Options)
C3/BC27:	AF590A02	; 12x04 at $59AF (GP)
C3/BC2B:	8B5A1C10	; 30x18 at $5A8B (Items)

Window layout for Buy menu
C3/BC2F:	8B600702	; 09x04 at $608B (Title)
C3/BC33:	9D601302	; 21x04 at $609D (Dialogue)
C3/BC37:	8B611C0C	; 30x14 at $618B (Items)
C3/BC3B:	0B651C06	; 30x08 at $650B (Actors)

Window layout for shop order menus
C3/BC3F:	8B680702	; 09x04 at $688B (Title)
C3/BC43:	9D681302	; 21x04 at $689D (Dialogue)
C3/BC47:	8B691107	; 19x09 at $698B (Item)
C3/BC4B:	CB6B1C03	; 30x05 at $6BCB (Description)
C3/BC4F:	0B6D1C06	; 30x08 at $6D0B (Actors)
C3/BC53:	B1690907	; 11x09 at $69B1 (Amounts)

Compile quantity owned of each item in Buy menu
C3/BC57:	A2C99D  	LDX #$9DC9     ; 7E/9DC9
C3/BC5A:	8E8121  	STX $2181      ; Set WRAM LBs
C3/BC5D:	7B      	TDC            ; Clear A
C3/BC5E:	AA      	TAX            ; Menu slot: 1
C3/BC5F:	DA      	PHX            ; ...
C3/BC60:	A400    	LDY $00        ; Stock slot: 1
C3/BC62:	BF899D7E	LDA $7E9D89,X  ; Shop item
C3/BC66:	D96918  	CMP $1869,Y    ; In stock slot?
C3/BC69:	F00B    	BEQ $BC76      ; Branch if so
C3/BC6B:	C8      	INY            ; Stock slot +1
C3/BC6C:	C00001  	CPY #$0100     ; Done all 256?
C3/BC6F:	D0F5    	BNE $BC66      ; Loop if not
C3/BC71:	9C8021  	STZ $2180      ; Quantity: 0
C3/BC74:	8006    	BRA $BC7C      ; Skip 2 lines
C3/BC76:	B96919  	LDA $1969,Y    ; Quantity owned
C3/BC79:	8D8021  	STA $2180      ; Set shop item's
C3/BC7C:	FA      	PLX            ; ...
C3/BC7D:	E8      	INX            ; Menu slot +1
C3/BC7E:	E00800  	CPX #$0008     ; Done 8 items?
C3/BC81:	D0DC    	BNE $BC5F      ; Loop if not
C3/BC83:	60      	RTS

Load and draw quantity owned of item in Buy menu
C3/BC84:	2092BC  	JSR $BC92      ; Define $64
C3/BC87:	A564    	LDA $64        ; Quantity owned
C3/BC89:	20E004  	JSR $04E0      ; Turn into text
C3/BC8C:	A23F7B  	LDX #$7B3F     ; Text position
C3/BC8F:	4CB604  	JMP $04B6      ; Draw 2 digits

Get quantity owned of item in Buy menu
C3/BC92:	7B      	TDC            ; Clear A
C3/BC93:	A54B    	LDA $4B        ; Cursor slot
C3/BC95:	AA      	TAX            ; Index it
C3/BC96:	BFC99D7E	LDA $7E9DC9,X  ; Quantity owned
C3/BC9A:	8564    	STA $64        ; Set as current
C3/BC9C:	60      	RTS

Load and draw quantity owned of item in Sell menu
C3/BC9D:	7B      	TDC            ; Clear A
C3/BC9E:	A54B    	LDA $4B        ; List slot
C3/BCA0:	A8      	TAY            ; Index it
C3/BCA1:	B96919  	LDA $1969,Y    ; Item quantity
C3/BCA4:	8564    	STA $64        ; Memorize it
C3/BCA6:	80DF    	BRA $BC87      ; Draw quantity

Count and draw quantity worn of item in Buy menu
C3/BCA8:	20C2BF  	JSR $BFC2      ; Item in slot
C3/BCAB:	4C69BF  	JMP $BF69      ; Draw quantity

Get sign found by actor for shop item
C3/BCAE:	20C9BC  	JSR $BCC9      ; Actor can use?
C3/BCB1:	9014    	BCC $BCC7      ; No sign if not
C3/BCB3:	7B      	TDC            ; Clear A
C3/BCB4:	A54B    	LDA $4B        ; Cursor slot
C3/BCB6:	C220    	REP #$20       ; ...
C3/BCB8:	0A      	ASL A          ; x2
C3/BCB9:	0A      	ASL A          ; x4
C3/BCBA:	0A      	ASL A          ; x8
C3/BCBB:	0A      	ASL A          ; x16
C3/BCBC:	E220    	SEP #$20       ; ...
C3/BCBE:	18      	CLC            ; ...
C3/BCBF:	65E0    	ADC $E0        ; Add char slot
C3/BCC1:	AA      	TAX            ; Index sum
C3/BCC2:	BF8DAA7E	LDA $7EAA8D,X  ; Sign
C3/BCC6:	60      	RTS            ; Exit
C3/BCC7:	7B      	TDC            ; Sign: None
C3/BCC8:	60      	RTS

Check whether actor can equip shop item
C3/BCC9:	8B      	PHB            ; Save DB
C3/BCCA:	A900    	LDA #$00       ; Zero A
C3/BCCC:	48      	PHA            ; Put on stack
C3/BCCD:	AB      	PLB            ; Set DB to 0
C3/BCCE:	7B      	TDC            ; Clear A
C3/BCCF:	8DD811  	STA $11D8      ; No Merit Award
C3/BCD2:	7B      	TDC            ; ...
C3/BCD3:	A5E0    	LDA $E0        ; Char list slot
C3/BCD5:	AA      	TAX            ; Index it
C3/BCD6:	BF099E7E	LDA $7E9E09,X  ; Actor in slot
C3/BCDA:	20489C  	JSR $9C48      ; Define compat
C3/BCDD:	7B      	TDC            ; Clear A
C3/BCDE:	A54B    	LDA $4B        ; Cursor slot
C3/BCE0:	AA      	TAX            ; Index it
C3/BCE1:	BF899D7E	LDA $7E9D89,X  ; Item in slot
C3/BCE5:	202183  	JSR $8321      ; Compute index
C3/BCE8:	AE3421  	LDX $2134      ; Load it
C3/BCEB:	C220    	REP #$20       ; 16-bit A
C3/BCED:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/BCF1:	25E7    	AND $E7        ; Actor can use?
C3/BCF3:	E220    	SEP #$20       ; 8-bit A
C3/BCF5:	F003    	BEQ $BCFA      ; Branch if not
C3/BCF7:	AB      	PLB            ; Restore DB
C3/BCF8:	38      	SEC            ; Mark success
C3/BCF9:	60      	RTS            ; Exit
C3/BCFA:	AB      	PLB            ; Restore DB
C3/BCFB:	18      	CLC            ; Mark failure
C3/BCFC:	60      	RTS

Build sign list for each item in Buy menu
C3/BCFD:	204FBF  	JSR $BF4F      ; Clear sign list
C3/BD00:	A08DAA  	LDY #$AA8D     ; 7E/AA8D
C3/BD03:	84F3    	STY $F3        ; Save WRAM adr
C3/BD05:	7B      	TDC            ; ...
C3/BD06:	AA      	TAX            ; Item slot: 1
C3/BD07:	A4F3    	LDY $F3        ; WRAM address
C3/BD09:	8C8121  	STY $2181      ; Set WRAM LBs
C3/BD0C:	DA      	PHX            ; Save item slot
C3/BD0D:	BF899D7E	LDA $7E9D89,X  ; Item in slot
C3/BD11:	859F    	STA $9F        ; Memorize it
C3/BD13:	202183  	JSR $8321      ; Compute index
C3/BD16:	AE3421  	LDX $2134      ; Load it
C3/BD19:	BF1450D8	LDA $D85014,X  ; Item's power
C3/BD1D:	859E    	STA $9E        ; Memorize it
C3/BD1F:	BF0050D8	LDA $D85000,X  ; Properties
C3/BD23:	2907    	AND #$07       ; Get class
C3/BD25:	C901    	CMP #$01       ; Weapon?
C3/BD27:	F07C    	BEQ $BDA5      ; Branch if so
C3/BD29:	C902    	CMP #$02       ; Armor?
C3/BD2B:	F018    	BEQ $BD45      ; Branch if so
C3/BD2D:	C903    	CMP #$03       ; Shield?
C3/BD2F:	F00E    	BEQ $BD3F      ; Branch if so
C3/BD31:	C904    	CMP #$04       ; Helmet?
C3/BD33:	F00D    	BEQ $BD42      ; Branch if so
C3/BD35:	C905    	CMP #$05       ; Relic?
C3/BD37:	F003    	BEQ $BD3C      ; Branch if so
C3/BD39:	4C0ABF  	JMP $BF0A      ; Handle non-gear
C3/BD3C:	4C18BF  	JMP $BF18      ; Handle relic
C3/BD3F:	4C35BE  	JMP $BE35      ; Handle shield
C3/BD42:	4CBDBE  	JMP $BEBD      ; Handle helmet

Fork: Build sign list for armor
C3/BD45:	7B      	TDC            ; Clear A
C3/BD46:	AA      	TAX            ; 1st: Terra
C3/BD47:	DA      	PHX            ; Save actor index
C3/BD48:	C220    	REP #$20       ; 16-bit A
C3/BD4A:	ADDC1E  	LDA $1EDC      ; Shown actors
C3/BD4D:	3F679CC3	AND $C39C67,X  ; Has our actor?
C3/BD51:	F034    	BEQ $BD87      ; Skip if not
C3/BD53:	BF6969C3	LDA $C36969,X  ; Actor's address
C3/BD57:	A8      	TAY            ; Index it
C3/BD58:	E220    	SEP #$20       ; 8-bit A
C3/BD5A:	7B      	TDC            ; ...
C3/BD5B:	B92200  	LDA $0022,Y    ; Actor's armor
C3/BD5E:	C59F    	CMP $9F        ; In shop slot?
C3/BD60:	F01C    	BEQ $BD7E      ; Use "E" if so
C3/BD62:	C9FF    	CMP #$FF       ; None?
C3/BD64:	F010    	BEQ $BD76      ; Use "^" if so
C3/BD66:	202183  	JSR $8321      ; Compute index
C3/BD69:	AE3421  	LDX $2134      ; Load it
C3/BD6C:	BF1450D8	LDA $D85014,X  ; Item's defense
C3/BD70:	C59E    	CMP $9E        ; Matches shop's?
C3/BD72:	F00E    	BEQ $BD82      ; Use "=" if so
C3/BD74:	B004    	BCS $BD7A      ; Use "v" if above
C3/BD76:	A902    	LDA #$02       ; Sign: "^"
C3/BD78:	800A    	BRA $BD84      ; Add to list

Subfork: Use "v" sign for armor
C3/BD7A:	A903    	LDA #$03       ; Sign: "v"
C3/BD7C:	8006    	BRA $BD84      ; Add to list

Subfork: Use "E" sign for armor
C3/BD7E:	A901    	LDA #$01       ; Sign: "E"
C3/BD80:	8002    	BRA $BD84      ; Skip a line

Subfork: Use "=" sign for armor
C3/BD82:	A904    	LDA #$04       ; Sign: "="
C3/BD84:	8D8021  	STA $2180      ; Add to list
C3/BD87:	FA      	PLX            ; Actor index
C3/BD88:	E8      	INX            ; Index +1
C3/BD89:	E8      	INX            ; Index +1
C3/BD8A:	E02000  	CPX #$0020     ; Done 16 chars?
C3/BD8D:	D0B8    	BNE $BD47      ; Loop if not

Fork: Handle next item
C3/BD8F:	C221    	REP #$21       ; 16-bit A; C-
C3/BD91:	A5F3    	LDA $F3        ; WRAM address
C3/BD93:	691000  	ADC #$0010     ; Reach next item
C3/BD96:	85F3    	STA $F3        ; Save changes
C3/BD98:	E220    	SEP #$20       ; 8-bit A
C3/BD9A:	FA      	PLX            ; Item slot
C3/BD9B:	E8      	INX            ; Item slot +1
C3/BD9C:	E00800  	CPX #$0008     ; Done 8 items?
C3/BD9F:	D001    	BNE $BDA2      ; Loop if not
C3/BDA1:	60      	RTS            ; Exit
C3/BDA2:	4C07BD  	JMP $BD07      ; Do next item

Fork: Build sign list for weapon
C3/BDA5:	7B      	TDC            ; Clear A
C3/BDA6:	AA      	TAX            ; 1st: Terra
C3/BDA7:	DA      	PHX            ; Save actor index
C3/BDA8:	C220    	REP #$20       ; 16-bit A
C3/BDAA:	ADDC1E  	LDA $1EDC      ; Shown actors
C3/BDAD:	3F679CC3	AND $C39C67,X  ; Has our actor?
C3/BDB1:	F074    	BEQ $BE27      ; Skip if not
C3/BDB3:	BF6969C3	LDA $C36969,X  ; Actor's address
C3/BDB7:	A8      	TAY            ; Index it
C3/BDB8:	E220    	SEP #$20       ; 8-bit A

Subfork: Check if holding shop item
C3/BDBA:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/BDBD:	C59F    	CMP $9F        ; In shop slot?
C3/BDBF:	F05D    	BEQ $BE1E      ; Use "E" if so
C3/BDC1:	B92000  	LDA $0020,Y    ; L-Hand item
C3/BDC4:	C59F    	CMP $9F        ; In shop slot?
C3/BDC6:	F056    	BEQ $BE1E      ; Use "E" if so

Subfork: Check if weapon in R-Hand
C3/BDC8:	7B      	TDC            ; ...
C3/BDC9:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/BDCC:	C9FF    	CMP #$FF       ; None?
C3/BDCE:	F010    	BEQ $BDE0      ; Branch if so
C3/BDD0:	202183  	JSR $8321      ; Compute index
C3/BDD3:	AE3421  	LDX $2134      ; Load it
C3/BDD6:	BF0050D8	LDA $D85000,X  ; Properties
C3/BDDA:	2907    	AND #$07       ; Get class
C3/BDDC:	C901    	CMP #$01       ; Weapon?
C3/BDDE:	F01E    	BEQ $BDFE      ; Branch if so

Subfork: No weapon in R-Hand, check L-Hand
C3/BDE0:	7B      	TDC            ; ...
C3/BDE1:	B92000  	LDA $0020,Y    ; L-Hand item
C3/BDE4:	C9FF    	CMP #$FF       ; None?
C3/BDE6:	F02E    	BEQ $BE16      ; Use "^" if so
C3/BDE8:	202183  	JSR $8321      ; Compute index
C3/BDEB:	AE3421  	LDX $2134      ; Load it
C3/BDEE:	BF0050D8	LDA $D85000,X  ; Properties
C3/BDF2:	2907    	AND #$07       ; Get class
C3/BDF4:	C901    	CMP #$01       ; Weapon?
C3/BDF6:	D006    	BNE $BDFE      ; Branch if not
C3/BDF8:	7B      	TDC            ; ...
C3/BDF9:	B92000  	LDA $0020,Y    ; L-Hand item
C3/BDFC:	8004    	BRA $BE02      ; Compare power

Subfork: Compare weapons' power
C3/BDFE:	7B      	TDC            ; ...
C3/BDFF:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/BE02:	C9FF    	CMP #$FF       ; None?
C3/BE04:	F010    	BEQ $BE16      ; Use "^" if so
C3/BE06:	202183  	JSR $8321      ; Compute index
C3/BE09:	AE3421  	LDX $2134      ; Load it
C3/BE0C:	BF1450D8	LDA $D85014,X  ; Item's Bat.Pwr
C3/BE10:	C59E    	CMP $9E        ; Matches shop's?
C3/BE12:	F00E    	BEQ $BE22      ; Use "=" if so
C3/BE14:	B004    	BCS $BE1A      ; Use "v" if above
C3/BE16:	A902    	LDA #$02       ; Sign: "^"
C3/BE18:	800A    	BRA $BE24      ; Add to list

Subfork: Use "v" sign for weapon
C3/BE1A:	A903    	LDA #$03       ; Sign: "v"
C3/BE1C:	8006    	BRA $BE24      ; Add to list

Subfork: Use "E" sign for weapon
C3/BE1E:	A901    	LDA #$01       ; Sign: "E"
C3/BE20:	8002    	BRA $BE24      ; Skip a line

Subfork: Use "=" sign for weapon
C3/BE22:	A904    	LDA #$04       ; Sign: "="
C3/BE24:	8D8021  	STA $2180      ; Add to list
C3/BE27:	FA      	PLX            ; Actor index
C3/BE28:	E8      	INX            ; Index +1
C3/BE29:	E8      	INX            ; Index +1
C3/BE2A:	E02000  	CPX #$0020     ; Done 16 chars?
C3/BE2D:	D003    	BNE $BE32      ; Loop if not
C3/BE2F:	4C8FBD  	JMP $BD8F      ; Do next item
C3/BE32:	4CA7BD  	JMP $BDA7      ; Do next actor

Fork: Build sign list for shield
C3/BE35:	7B      	TDC            ; Clear A
C3/BE36:	AA      	TAX            ; 1st: Terra
C3/BE37:	DA      	PHX            ; Save actor index
C3/BE38:	C220    	REP #$20       ; 16-bit A
C3/BE3A:	ADDC1E  	LDA $1EDC      ; Shown actors
C3/BE3D:	3F679CC3	AND $C39C67,X  ; Has our actor?
C3/BE41:	F06C    	BEQ $BEAF      ; Skip if not
C3/BE43:	BF6969C3	LDA $C36969,X  ; Actor's address
C3/BE47:	A8      	TAY            ; Index it
C3/BE48:	E220    	SEP #$20       ; 8-bit A

Subfork: Check if holding shop item
C3/BE4A:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/BE4D:	C59F    	CMP $9F        ; In shop slot?
C3/BE4F:	F055    	BEQ $BEA6      ; Use "E" if so
C3/BE51:	B92000  	LDA $0020,Y    ; L-Hand item
C3/BE54:	C59F    	CMP $9F        ; In shop slot?
C3/BE56:	F04E    	BEQ $BEA6      ; Use "E" if so

Subfork: Check if holding a shield
C3/BE58:	7B      	TDC            ; ...
C3/BE59:	B92000  	LDA $0020,Y    ; L-Hand item...
C3/BE5C:	202183  	JSR $8321      ; Compute index
C3/BE5F:	AE3421  	LDX $2134      ; Load it
C3/BE62:	BF0050D8	LDA $D85000,X  ; Properties
C3/BE66:	2907    	AND #$07       ; Get class
C3/BE68:	C903    	CMP #$03       ; Shield?
C3/BE6A:	F01A    	BEQ $BE86      ; Branch if so
C3/BE6C:	7B      	TDC            ; ...
C3/BE6D:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/BE70:	202183  	JSR $8321      ; Compute index
C3/BE73:	AE3421  	LDX $2134      ; Load it
C3/BE76:	BF0050D8	LDA $D85000,X  ; Properties
C3/BE7A:	2907    	AND #$07       ; Get class
C3/BE7C:	C903    	CMP #$03       ; Shield?
C3/BE7E:	D01E    	BNE $BE9E      ; Use "^" if not
C3/BE80:	7B      	TDC            ; ...
C3/BE81:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/BE84:	8004    	BRA $BE8A      ; Compare defense

Subfork: Compare shields' defense
C3/BE86:	7B      	TDC            ; ...
C3/BE87:	B92000  	LDA $0020,Y    ; L-Hand item...
C3/BE8A:	C9FF    	CMP #$FF       ; None?...
C3/BE8C:	F010    	BEQ $BE9E      ; Use "^" if so
C3/BE8E:	202183  	JSR $8321      ; Compute index
C3/BE91:	AE3421  	LDX $2134      ; Load it
C3/BE94:	BF1450D8	LDA $D85014,X  ; Item's defense
C3/BE98:	C59E    	CMP $9E        ; Matches shop's?
C3/BE9A:	F00E    	BEQ $BEAA      ; Use "=" if so
C3/BE9C:	B004    	BCS $BEA2      ; Use "v" if above
C3/BE9E:	A902    	LDA #$02       ; Sign: "^"
C3/BEA0:	800A    	BRA $BEAC      ; Add to list

Subfork: Use "v" sign for shield
C3/BEA2:	A903    	LDA #$03       ; Sign: "v"
C3/BEA4:	8006    	BRA $BEAC      ; Add to list

Subfork: Use "E" sign for shield
C3/BEA6:	A901    	LDA #$01       ; Sign: "E"
C3/BEA8:	8002    	BRA $BEAC      ; Skip a line

Subfork: Use "=" sign for shield
C3/BEAA:	A904    	LDA #$04       ; Sign: "="
C3/BEAC:	8D8021  	STA $2180      ; Add to list
C3/BEAF:	FA      	PLX            ; Actor index
C3/BEB0:	E8      	INX            ; Index +1
C3/BEB1:	E8      	INX            ; Index +1
C3/BEB2:	E02000  	CPX #$0020     ; Done 16 chars?
C3/BEB5:	D003    	BNE $BEBA      ; Loop if not
C3/BEB7:	4C8FBD  	JMP $BD8F      ; Do next item
C3/BEBA:	4C37BE  	JMP $BE37      ; Do next actor

Fork: Build sign list for helmet
C3/BEBD:	7B      	TDC            ; Clear A
C3/BEBE:	AA      	TAX            ; 1st: Terra
C3/BEBF:	DA      	PHX            ; Save char index
C3/BEC0:	C220    	REP #$20       ; 16-bit A
C3/BEC2:	ADDC1E  	LDA $1EDC      ; Shown actors
C3/BEC5:	3F679CC3	AND $C39C67,X  ; Has our actor?
C3/BEC9:	F034    	BEQ $BEFF      ; Skip if not
C3/BECB:	BF6969C3	LDA $C36969,X  ; Actor's address
C3/BECF:	A8      	TAY            ; Index it
C3/BED0:	E220    	SEP #$20       ; 8-bit A
C3/BED2:	7B      	TDC            ; ...
C3/BED3:	B92100  	LDA $0021,Y    ; Actor's helmet
C3/BED6:	C59F    	CMP $9F        ; In shop slot?
C3/BED8:	F01C    	BEQ $BEF6      ; Use "E" if so
C3/BEDA:	C9FF    	CMP #$FF       ; None?
C3/BEDC:	F010    	BEQ $BEEE      ; Use "^" if so
C3/BEDE:	202183  	JSR $8321      ; Compute index
C3/BEE1:	AE3421  	LDX $2134      ; Load it
C3/BEE4:	BF1450D8	LDA $D85014,X  ; Item's defense
C3/BEE8:	C59E    	CMP $9E        ; Matches shop's?
C3/BEEA:	F00E    	BEQ $BEFA      ; Use "=" if so
C3/BEEC:	B004    	BCS $BEF2      ; Use "v" if above
C3/BEEE:	A902    	LDA #$02       ; Sign: "^"
C3/BEF0:	800A    	BRA $BEFC      ; Add to list

Subfork: Use "v" sign for helmet
C3/BEF2:	A903    	LDA #$03       ; Sign: "v"
C3/BEF4:	8006    	BRA $BEFC      ; Add to list

Subfork: Use "E" sign for helmet
C3/BEF6:	A901    	LDA #$01       ; Sign: "E"
C3/BEF8:	8002    	BRA $BEFC      ; Skip a line

Subfork: Use "=" sign for helmet
C3/BEFA:	A904    	LDA #$04       ; Sign: "="
C3/BEFC:	8D8021  	STA $2180      ; Add to list
C3/BEFF:	FA      	PLX            ; Actor index
C3/BF00:	E8      	INX            ; Index +1
C3/BF01:	E8      	INX            ; Index +1
C3/BF02:	E02000  	CPX #$0020     ; Done 16 chars?
C3/BF05:	D0B8    	BNE $BEBF      ; Loop if not
C3/BF07:	4C8FBD  	JMP $BD8F      ; Do next item

Fork: Clear sign list for consumable or tool
C3/BF0A:	7B      	TDC            ; Sign: None
C3/BF0B:	AA      	TAX            ; Actors done: 0
C3/BF0C:	8D8021  	STA $2180      ; Add sign to list
C3/BF0F:	E8      	INX            ; Actors done +1
C3/BF10:	E01000  	CPX #$0010     ; Done all 16?
C3/BF13:	D0F7    	BNE $BF0C      ; Loop if not
C3/BF15:	4C8FBD  	JMP $BD8F      ; Do next item

Fork: Build sign list for relic
C3/BF18:	7B      	TDC            ; Clear A
C3/BF19:	AA      	TAX            ; 1st: Terra
C3/BF1A:	DA      	PHX            ; Save char index
C3/BF1B:	C220    	REP #$20       ; 16-bit A
C3/BF1D:	ADDC1E  	LDA $1EDC      ; Shown actors
C3/BF20:	3F679CC3	AND $C39C67,X  ; Has our actor?
C3/BF24:	F01E    	BEQ $BF44      ; Skip if not
C3/BF26:	BF6969C3	LDA $C36969,X  ; Actor's address
C3/BF2A:	A8      	TAY            ; Index it
C3/BF2B:	E220    	SEP #$20       ; 8-bit A
C3/BF2D:	7B      	TDC            ; ...
C3/BF2E:	B92300  	LDA $0023,Y    ; Actor relic 1
C3/BF31:	C59F    	CMP $9F        ; In shop slot?
C3/BF33:	F00A    	BEQ $BF3F      ; Use "E" if so
C3/BF35:	B92400  	LDA $0024,Y    ; Actor relic 2
C3/BF38:	C59F    	CMP $9F        ; In shop slot?
C3/BF3A:	F003    	BEQ $BF3F      ; Use "E" if so
C3/BF3C:	7B      	TDC            ; Sign: None
C3/BF3D:	8002    	BRA $BF41      ; Skip a line
C3/BF3F:	A901    	LDA #$01       ; Sign: "E"
C3/BF41:	8D8021  	STA $2180      ; Add to list
C3/BF44:	FA      	PLX            ; Actor index
C3/BF45:	E8      	INX            ; Index +1
C3/BF46:	E8      	INX            ; Index +1
C3/BF47:	E02000  	CPX #$0020     ; Done 16 chars?
C3/BF4A:	D0CE    	BNE $BF1A      ; Loop if not
C3/BF4C:	4C8FBD  	JMP $BD8F      ; Do next item

Clear sign list for every item in Buy menu (16 actors per item)
C3/BF4F:	8B      	PHB            ; Save DB
C3/BF50:	A97E    	LDA #$7E       ; Bank: 7E
C3/BF52:	48      	PHA            ; Put on stack
C3/BF53:	AB      	PLB            ; Set DB to 7E
C3/BF54:	7B      	TDC            ; Clear A
C3/BF55:	AA      	TAX            ; Index: 0
C3/BF56:	C220    	REP #$20       ; 16-bit A
C3/BF58:	9E8DAA  	STZ $AA8D,X    ; Clear 2 signs
C3/BF5B:	E8      	INX            ; Index +1
C3/BF5C:	E8      	INX            ; Index +1
C3/BF5D:	E08000  	CPX #$0080     ; Done 8 items?
C3/BF60:	D0F6    	BNE $BF58      ; Loop if not
C3/BF62:	E220    	SEP #$20       ; 8-bit A
C3/BF64:	AB      	PLB            ; Restore DB
C3/BF65:	60      	RTS

Count and draw quantity worn of item in Sell menu
C3/BF66:	20CBBF  	JSR $BFCB      ; Selected item
C3/BF69:	85E0    	STA $E0        ; Memorize it
C3/BF6B:	6465    	STZ $65        ; Quantity worn: 0
C3/BF6D:	A21F16  	LDX #$161F     ; 00/161F
C3/BF70:	86E7    	STX $E7        ; Set address LBs
C3/BF72:	A900    	LDA #$00       ; Bank: 00
C3/BF74:	85E9    	STA $E9        ; Set address HB
C3/BF76:	A600    	LDX $00        ; 1st: Terra
C3/BF78:	DA      	PHX            ; Save actor slot
C3/BF79:	C220    	REP #$20       ; 16-bit A
C3/BF7B:	8A      	TXA            ; Get actor
C3/BF7C:	0A      	ASL A          ; Double it
C3/BF7D:	AA      	TAX            ; Index it
C3/BF7E:	ADDC1E  	LDA $1EDC      ; Eligible actors
C3/BF81:	3F679CC3	AND $C39C67,X  ; Has our actor?
C3/BF85:	F01E    	BEQ $BFA5      ; Skip if not
C3/BF87:	BF6969C3	LDA $C36969,X  ; Actor's address
C3/BF8B:	AA      	TAX            ; Index it
C3/BF8C:	E220    	SEP #$20       ; 8-bit A
C3/BF8E:	BD0000  	LDA $0000,X    ; Actor
C3/BF91:	C90E    	CMP #$0E       ; Guest?
C3/BF93:	B010    	BCS $BFA5      ; Skip if so
C3/BF95:	A400    	LDY $00        ; 1st: R-Hand
C3/BF97:	B7E7    	LDA [$E7],Y    ; Equipped item
C3/BF99:	C5E0    	CMP $E0        ; Matches shop's?
C3/BF9B:	D002    	BNE $BF9F      ; Branch if not
C3/BF9D:	E665    	INC $65        ; Quantity worn +1
C3/BF9F:	C8      	INY            ; Gear slot +1
C3/BFA0:	C00600  	CPY #$0006     ; Done all 6?
C3/BFA3:	D0F2    	BNE $BF97      ; Loop if not
C3/BFA5:	C221    	REP #$21       ; 16-bit A; C-
C3/BFA7:	A92500  	LDA #$0025     ; Actor data size
C3/BFAA:	65E7    	ADC $E7        ; Add SRAM pointer
C3/BFAC:	85E7    	STA $E7        ; Set SRAM pointer
C3/BFAE:	E220    	SEP #$20       ; 8-bit A
C3/BFB0:	FA      	PLX            ; Actor slot
C3/BFB1:	E8      	INX            ; Point to next
C3/BFB2:	E01000  	CPX #$0010     ; Done all 16?
C3/BFB5:	D0C1    	BNE $BF78      ; Loop if not
C3/BFB7:	A565    	LDA $65        ; Quantity worn
C3/BFB9:	20E004  	JSR $04E0      ; Turn into text
C3/BFBC:	A23F7C  	LDX #$7C3F     ; Text position
C3/BFBF:	4CB604  	JMP $04B6      ; Draw 2 digits

Get item by cursor in Buy menu
C3/BFC2:	7B      	TDC            ; Clear A
C3/BFC3:	A54B    	LDA $4B        ; Cursor slot
C3/BFC5:	AA      	TAX            ; Index it
C3/BFC6:	BF899D7E	LDA $7E9D89,X  ; Item in slot
C3/BFCA:	60      	RTS

Get item selected in Sell menu
C3/BFCB:	7B      	TDC            ; Clear A
C3/BFCC:	A54B    	LDA $4B        ; List slot
C3/BFCE:	A8      	TAY            ; Index it
C3/BFCF:	B96918  	LDA $1869,Y    ; Item in slot
C3/BFD2:	60      	RTS

Draw shop title and define shop index
C3/BFD3:	20F7C2  	JSR $C2F7      ; Color: Blue
C3/BFD6:	AD1242  	LDA $4212      ; PPU status
C3/BFD9:	2940    	AND #$40       ; H-Blank?
C3/BFDB:	F0F9    	BEQ $BFD6      ; Loop if not
C3/BFDD:	AD0102  	LDA $0201      ; Shop number
C3/BFE0:	8D1B21  	STA $211B      ; Set matrix A LB
C3/BFE3:	9C1B21  	STZ $211B      ; Clear HB
C3/BFE6:	A909    	LDA #$09       ; Shop data size
C3/BFE8:	8D1C21  	STA $211C      ; Set matrix B
C3/BFEB:	8D1C21  	STA $211C      ; ...
C3/BFEE:	AE3421  	LDX $2134      ; Index product
C3/BFF1:	8667    	STX $67        ; Set shop index
C3/BFF3:	BFC07AC4	LDA $C47AC0,X  ; Shop flags
C3/BFF7:	2907    	AND #$07       ; Title number
C3/BFF9:	0A      	ASL A          ; Double it
C3/BFFA:	AA      	TAX            ; Index it
C3/BFFB:	C220    	REP #$20       ; 16-bit A
C3/BFFD:	BF0CC0C3	LDA $C3C00C,X  ; Text pointer
C3/C001:	85E7    	STA $E7        ; Set src LBs
C3/C003:	E220    	SEP #$20       ; 8-bit A
C3/C005:	A9C3    	LDA #$C3       ; Bank: C3
C3/C007:	85E9    	STA $E9        ; Set src HB
C3/C009:	4CFF02  	JMP $02FF      ; Draw title

Pointers to shop titles
C3/C00C:	0000    	; Bogus...
C3/C00E:	FCC2    	; Weapon
C3/C010:	05C3    	; Armor
C3/C012:	0DC3    	; Item
C3/C014:	14C3    	; Relics
C3/C016:	1DC3    	; Vendor

Set to condense BG3 text in shop menu
C3/C018:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/C01A:	8D5043  	STA $4350      ; Set DMA mode
C3/C01D:	A912    	LDA #$12       ; $2112
C3/C01F:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/C022:	A037C0  	LDY #$C037     ; C3/C037
C3/C025:	8C5243  	STY $4352      ; Set src LBs
C3/C028:	A9C3    	LDA #$C3       ; Bank: C3
C3/C02A:	8D5443  	STA $4354      ; Set src HB
C3/C02D:	A9C3    	LDA #$C3       ; ...
C3/C02F:	8D5743  	STA $4357      ; Set indir HB
C3/C032:	A920    	LDA #$20       ; Channel: 5
C3/C034:	0443    	TSB $43        ; Queue HDMA-5
C3/C036:	60      	RTS

BG3 text shifting table for shop
C3/C037:	2F 0400 	; Title
C3/C03A:	0C 0400 	; Item 1
C3/C03D:	0C 0800 	; Item 2
C3/C040:	0C 0C00 	; Item 3
C3/C043:	0C 1000 	; Item 4
C3/C046:	0C 1400 	; Item 5
C3/C049:	0C 1800 	; Item 6
C3/C04C:	0C 1C00 	; Item 7
C3/C04F:	0C 2000 	; Item 8
C3/C052:	0C 2400 	; Nothing
C3/C055:	0C 2800 	; Nothing
C3/C058:	0C 2C00 	; Nothing
C3/C05B:	0C 3000 	; Nothing
C3/C05E:	0C 3400 	; Nothing
C3/C061:	0C 3800 	; Nothing
C3/C064:	0C 3C00 	; Nothing
C3/C067:	00      	; End

Load item's name
C3/C068:	48      	PHA            ; Save item
C3/C069:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/C06C:	8E8121  	STX $2181      ; Set WRAM LBs
C3/C06F:	AD1242  	LDA $4212      ; PPU status
C3/C072:	2940    	AND #$40       ; H-Blank?
C3/C074:	F0F9    	BEQ $C06F      ; Loop if not
C3/C076:	68      	PLA            ; Item
C3/C077:	8D1B21  	STA $211B      ; Set matrix A LB
C3/C07A:	9C1B21  	STZ $211B      ; Clear HB
C3/C07D:	A90D    	LDA #$0D       ; Name data size
C3/C07F:	8D1C21  	STA $211C      ; Set matrix B
C3/C082:	8D1C21  	STA $211C      ; ...
C3/C085:	AE3421  	LDX $2134      ; Index product
C3/C088:	A00D00  	LDY #$000D     ; Letters: 13
C3/C08B:	BF00B3D2	LDA $D2B300,X  ; Letter
C3/C08F:	8D8021  	STA $2180      ; Add to string
C3/C092:	E8      	INX            ; Point to next
C3/C093:	88      	DEY            ; One less left
C3/C094:	D0F5    	BNE $C08B      ; Loop till last
C3/C096:	9C8021  	STZ $2180      ; End string
C3/C099:	60      	RTS

Compile and create actors for Buy menu
C3/C09A:	2009C1  	JSR $C109      ; Compile actors
C3/C09D:	20CCC1  	JSR $C1CC      ; Mark members
C3/C0A0:	7B      	TDC            ; Clear A
C3/C0A1:	AA      	TAX            ; List slot: 1
C3/C0A2:	BF099E7E	LDA $7E9E09,X  ; Actor in slot
C3/C0A6:	3044    	BMI $C0EC      ; Exit if none
C3/C0A8:	DA      	PHX            ; Save slot
C3/C0A9:	48      	PHA            ; Save actor
C3/C0AA:	A902    	LDA #$02       ; Min slot: 16
C3/C0AC:	A041C1  	LDY #$C141     ; C3/C141
C3/C0AF:	207311  	JSR $1173      ; Queue OAM fn
C3/C0B2:	9B      	TXY            ; Queue slot
C3/C0B3:	7B      	TDC            ; Clear A
C3/C0B4:	68      	PLA            ; Actor
C3/C0B5:	9FC9357E	STA $7E35C9,X  ; Link to OBJ
C3/C0B9:	0A      	ASL A          ; Double it
C3/C0BA:	AA      	TAX            ; Index it
C3/C0BB:	A97E    	LDA #$7E       ; Bank: 7E
C3/C0BD:	48      	PHA            ; Put on stack
C3/C0BE:	AB      	PLB            ; Set DB to 7E
C3/C0BF:	C220    	REP #$20       ; 16-bit A
C3/C0C1:	BF17E9D8	LDA $D8E917,X  ; Anim table ptr
C3/C0C5:	99C932  	STA $32C9,Y    ; Set sprite's
C3/C0C8:	E220    	SEP #$20       ; 8-bit A
C3/C0CA:	FA      	PLX            ; List slot
C3/C0CB:	BFEDC0C3	LDA $C3C0ED,X  ; X position
C3/C0CF:	99CA33  	STA $33CA,Y    ; Set actor's
C3/C0D2:	BFFBC0C3	LDA $C3C0FB,X  ; Y position
C3/C0D6:	994A34  	STA $344A,Y    ; Set actor's
C3/C0D9:	7B      	TDC            ; ...
C3/C0DA:	99CB33  	STA $33CB,Y    ; No use...
C3/C0DD:	994B34  	STA $344B,Y    ; No use...
C3/C0E0:	A9D8    	LDA #$D8       ; Bank: D8
C3/C0E2:	99CA35  	STA $35CA,Y    ; Set ptr HB
C3/C0E5:	A900    	LDA #$00       ; Zero A
C3/C0E7:	48      	PHA            ; Put on stack
C3/C0E8:	AB      	PLB            ; Set DB to 0
C3/C0E9:	E8      	INX            ; List slot +1
C3/C0EA:	80B6    	BRA $C0A2      ; Do next char
C3/C0EC:	60      	RTS

X positions for shop actors
C3/C0ED:	18      	; Actor 1
C3/C0EE:	38      	; Actor 2
C3/C0EF:	58      	; Actor 3
C3/C0F0:	78      	; Actor 4
C3/C0F1:	98      	; Actor 5
C3/C0F2:	B8      	; Actor 6
C3/C0F3:	D8      	; Actor 7
C3/C0F4:	18      	; Actor 8
C3/C0F5:	38      	; Actor 9
C3/C0F6:	58      	; Actor 10
C3/C0F7:	78      	; Actor 11
C3/C0F8:	98      	; Actor 12
C3/C0F9:	B8      	; Actor 13
C3/C0FA:	D8      	; Actor 14

Y positions for shop actors
C3/C0FB:	9C      	; Actor 1
C3/C0FC:	9C      	; Actor 2
C3/C0FD:	9C      	; Actor 3
C3/C0FE:	9C      	; Actor 4
C3/C0FF:	9C      	; Actor 5
C3/C100:	9C      	; Actor 6
C3/C101:	9C      	; Actor 7
C3/C102:	B8      	; Actor 8
C3/C103:	B8      	; Actor 9
C3/C104:	B8      	; Actor 10
C3/C105:	B8      	; Actor 11
C3/C106:	B8      	; Actor 12
C3/C107:	B8      	; Actor 13
C3/C108:	B8      	; Actor 14

Compile actors for Buy menu
C3/C109:	A2099E  	LDX #$9E09     ; 7E/9E09
C3/C10C:	8E8121  	STX $2181      ; Set WRAM LBs
C3/C10F:	A600    	LDX $00        ; 1st: Terra
C3/C111:	DA      	PHX            ; Save char slot
C3/C112:	C220    	REP #$20       ; 16-bit A
C3/C114:	8A      	TXA            ; Actor slot
C3/C115:	0A      	ASL A          ; Double it
C3/C116:	AA      	TAX            ; Index it
C3/C117:	ADDC1E  	LDA $1EDC      ; Showable chars
C3/C11A:	3F679CC3	AND $C39C67,X  ; Has our actor?
C3/C11E:	F012    	BEQ $C132      ; Skip if not
C3/C120:	BF6969C3	LDA $C36969,X  ; Actor's address
C3/C124:	A8      	TAY            ; Index it
C3/C125:	7B      	TDC            ; Clear A
C3/C126:	E220    	SEP #$20       ; 8-bit A
C3/C128:	B90000  	LDA $0000,Y    ; Actor
C3/C12B:	C90E    	CMP #$0E       ; Guest?
C3/C12D:	B003    	BCS $C132      ; Skip if so
C3/C12F:	8D8021  	STA $2180      ; Add to list
C3/C132:	E220    	SEP #$20       ; 8-bit A
C3/C134:	FA      	PLX            ; Actor slot
C3/C135:	E8      	INX            ; Slot +1
C3/C136:	E01000  	CPX #$0010     ; Done all 16?
C3/C139:	D0D6    	BNE $C111      ; Loop if not
C3/C13B:	A9FF    	LDA #$FF       ; Terminator
C3/C13D:	8D8021  	STA $2180      ; End list
C3/C140:	60      	RTS

Update shop actor
C3/C141:	AA      	TAX            ; Index mode
C3/C142:	7C45C1  	JMP ($C145,X)  ; Handle mode

Jump table for the above
C3/C145:	49C1    	; Initialize data
C3/C147:	6AC1    	; Sustain sprite

Mode 0: Initialize data
C3/C149:	A901    	LDA #$01       ; Hide actors: N
C3/C14B:	0447    	TSB $47        ; Set menu flag
C3/C14D:	A62D    	LDX $2D        ; Queue index
C3/C14F:	FE4936  	INC $3649,X    ; Mode +1
C3/C152:	C220    	REP #$20       ; 16-bit A
C3/C154:	BDC932  	LDA $32C9,X    ; Anim table ptr
C3/C157:	9DCA34  	STA $34CA,X    ; Save original
C3/C15A:	E220    	SEP #$20       ; 8-bit A
C3/C15C:	200612  	JSR $1206      ; Set pose timer
C3/C15F:	A547    	LDA $47        ; Menu flags
C3/C161:	2908    	AND #$08       ; Shop mode?...
C3/C163:	D003    	BNE $C168      ; Branch if not
C3/C165:	20F0C1  	JSR $C1F0      ; Create big arrow
C3/C168:	8000    	BRA $C16A      ; ...

Mode 1: Sustain sprite
C3/C16A:	A547    	LDA $47        ; Menu flags
C3/C16C:	2901    	AND #$01       ; Remove actors?
C3/C16E:	F02A    	BEQ $C19A      ; Delete if so
C3/C170:	A62D    	LDX $2D        ; Queue index
C3/C172:	A547    	LDA $47        ; Menu flags
C3/C174:	2908    	AND #$08       ; Shop mode?...
C3/C176:	D011    	BNE $C189      ; Branch if not
C3/C178:	209CC1  	JSR $C19C      ; Waving arms?
C3/C17B:	900C    	BCC $C189      ; Branch if not
C3/C17D:	A62D    	LDX $2D        ; Queue index
C3/C17F:	C221    	REP #$21       ; 16-bit A; C-
C3/C181:	BDCA34  	LDA $34CA,X    ; Base anim ptr
C3/C184:	690900  	ADC #$0009     ; Adjust value
C3/C187:	8007    	BRA $C190      ; Set real ptr
C3/C189:	A62D    	LDX $2D        ; Queue index
C3/C18B:	C220    	REP #$20       ; 16-bit A
C3/C18D:	BDCA34  	LDA $34CA,X    ; Base anim ptr
C3/C190:	9DC932  	STA $32C9,X    ; Set as current
C3/C193:	E220    	SEP #$20       ; ...
C3/C195:	202112  	JSR $1221      ; Define OAM
C3/C198:	38      	SEC            ; Set to requeue
C3/C199:	60      	RTS            ; Exit
C3/C19A:	18      	CLC            ; Set to dequeue
C3/C19B:	60      	RTS

Determine whether shop actor should wave its arms
C3/C19C:	8B      	PHB            ; Save DB
C3/C19D:	A900    	LDA #$00       ; Zero A
C3/C19F:	48      	PHA            ; Put on stack
C3/C1A0:	AB      	PLB            ; Set DB to 0
C3/C1A1:	7B      	TDC            ; Clear A
C3/C1A2:	8DD811  	STA $11D8      ; No Merit Award
C3/C1A5:	BFC9357E	LDA $7E35C9,X  ; Actor
C3/C1A9:	20489C  	JSR $9C48      ; Define compat
C3/C1AC:	7B      	TDC            ; Clear A
C3/C1AD:	A54B    	LDA $4B        ; Cursor slot
C3/C1AF:	AA      	TAX            ; Index it
C3/C1B0:	BF899D7E	LDA $7E9D89,X  ; Item in slot
C3/C1B4:	202183  	JSR $8321      ; Compute index
C3/C1B7:	AE3421  	LDX $2134      ; Load it
C3/C1BA:	C220    	REP #$20       ; 16-bit A
C3/C1BC:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/C1C0:	25E7    	AND $E7        ; Actor can use?
C3/C1C2:	E220    	SEP #$20       ; 8-bit A
C3/C1C4:	F003    	BEQ $C1C9      ; Fail if not
C3/C1C6:	AB      	PLB            ; Restore DB
C3/C1C7:	38      	SEC            ; Mark success
C3/C1C8:	60      	RTS            ; Exit
C3/C1C9:	AB      	PLB            ; Restore DB
C3/C1CA:	18      	CLC            ; Mark failure
C3/C1CB:	60      	RTS

Compile party members for Buy menu
C3/C1CC:	A2019E  	LDX #$9E01     ; 7E/9E01
C3/C1CF:	8E8121  	STX $2181      ; Set WRAM LBs
C3/C1D2:	A600    	LDX $00        ; Member index: 0
C3/C1D4:	C220    	REP #$20       ; 16-bit A
C3/C1D6:	BD6D00  	LDA $006D,X    ; Actor's address
C3/C1D9:	E220    	SEP #$20       ; 8-bit A
C3/C1DB:	F006    	BEQ $C1E3      ; Skip if nobody
C3/C1DD:	A8      	TAY            ; Index it
C3/C1DE:	B90000  	LDA $0000,Y    ; Actor in slot
C3/C1E1:	8002    	BRA $C1E5      ; Skip a line
C3/C1E3:	A9FF    	LDA #$FF       ; Actor: None
C3/C1E5:	8D8021  	STA $2180      ; Add to list
C3/C1E8:	E8      	INX            ; Member index +1
C3/C1E9:	E8      	INX            ; Member index +1
C3/C1EA:	E00800  	CPX #$0008     ; Done 4 members?
C3/C1ED:	D0E5    	BNE $C1D4      ; Loop if not
C3/C1EF:	60      	RTS

Create arrow under shop actor if in party
C3/C1F0:	A400    	LDY $00        ; Member slot: 1
C3/C1F2:	A62D    	LDX $2D        ; Queue index
C3/C1F4:	BDC935  	LDA $35C9,X    ; Shop actor
C3/C1F7:	D9019E  	CMP $9E01,Y    ; In member slot?
C3/C1FA:	D038    	BNE $C234      ; Try next if not
C3/C1FC:	DA      	PHX            ; Save queue index
C3/C1FD:	5A      	PHY            ; Save member slot
C3/C1FE:	A900    	LDA #$00       ; ...
C3/C200:	48      	PHA            ; ...
C3/C201:	AB      	PLB            ; ...
C3/C202:	A900    	LDA #$00       ; Min slot: 0
C3/C204:	A0427B  	LDY #$7B42     ; C3/7B42
C3/C207:	207311  	JSR $1173      ; Queue OAM fn
C3/C20A:	A97E    	LDA #$7E       ; Bank: 7E
C3/C20C:	48      	PHA            ; Put on stack
C3/C20D:	AB      	PLB            ; Set DB to 7E
C3/C20E:	7B      	TDC            ; Clear A
C3/C20F:	9DC935  	STA $35C9,X    ; No use...
C3/C212:	BC4A37  	LDY $374A,X    ; Actor's index
C3/C215:	C220    	REP #$20       ; 16-bit A
C3/C217:	B9CA33  	LDA $33CA,Y    ; Actor's X
C3/C21A:	9DCA33  	STA $33CA,X    ; Set arrow's
C3/C21D:	B94A34  	LDA $344A,Y    ; Actor's Y
C3/C220:	3A      	DEC A          ; +1 px up
C3/C221:	3A      	DEC A          ; +1 px up
C3/C222:	9D4A34  	STA $344A,X    ; Set arrow's Y
C3/C225:	A9A9EB  	LDA #$EBA9     ; Anim table ptr
C3/C228:	9DC932  	STA $32C9,X    ; Set arrow's
C3/C22B:	E220    	SEP #$20       ; 8-bit A
C3/C22D:	A9D8    	LDA #$D8       ; Bank: D8
C3/C22F:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/C232:	7A      	PLY            ; Member slot
C3/C233:	FA      	PLX            ; Queue index
C3/C234:	C8      	INY            ; Member slot +1
C3/C235:	C00400  	CPY #$0004     ; Done all 4?
C3/C238:	D0BA    	BNE $C1F4      ; Loop if not
C3/C23A:	60      	RTS

Create sign by each actor in Buy menu
C3/C23B:	7B      	TDC            ; Clear A
C3/C23C:	A8      	TAY            ; Char slot: 1
C3/C23D:	5A      	PHY            ; Save char slot
C3/C23E:	A904    	LDA #$04       ; Min slot: 32
C3/C240:	A053C2  	LDY #$C253     ; C3/C253
C3/C243:	207311  	JSR $1173      ; Queue OAM fn
C3/C246:	7A      	PLY            ; Char slot
C3/C247:	98      	TYA            ; Put in A
C3/C248:	9FC9357E	STA $7E35C9,X  ; Assign to sign
C3/C24C:	C8      	INY            ; Char slot +1
C3/C24D:	C00E00  	CPY #$000E     ; Done all 14?
C3/C250:	D0EB    	BNE $C23D      ; Loop if not
C3/C252:	60      	RTS

Update shop sign
C3/C253:	AA      	TAX            ; Index mode
C3/C254:	7C57C2  	JMP ($C257,X)  ; Handle mode

Jump table for the above
C3/C257:	5BC2    	; Initialize sprite
C3/C259:	8BC2    	; Sustain sprite

Mode 0: Initialize sprite
C3/C25B:	A62D    	LDX $2D        ; Queue index
C3/C25D:	C220    	REP #$20       ; 16-bit A
C3/C25F:	A9CDEB  	LDA #$EBCD     ; Anim table ptr
C3/C262:	9DC932  	STA $32C9,X    ; Set current
C3/C265:	9DCA34  	STA $34CA,X    ; Set original
C3/C268:	E220    	SEP #$20       ; 8-bit A
C3/C26A:	FE4936  	INC $3649,X    ; Mode +1
C3/C26D:	A9D8    	LDA #$D8       ; Bank: D8
C3/C26F:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/C272:	7B      	TDC            ; Clear A
C3/C273:	BDC935  	LDA $35C9,X    ; Char slot
C3/C276:	9B      	TXY            ; Queue index
C3/C277:	AA      	TAX            ; Index slot
C3/C278:	BFB1EBD8	LDA $D8EBB1,X  ; X position
C3/C27C:	99CA33  	STA $33CA,Y    ; Set sign's
C3/C27F:	BFBFEBD8	LDA $D8EBBF,X  ; Y position
C3/C283:	994A34  	STA $344A,Y    ; Set sign's
C3/C286:	A62D    	LDX $2D        ; Queue index
C3/C288:	200612  	JSR $1206      ; Set pose timer

Mode 1: Sustain sprite
C3/C28B:	A547    	LDA $47        ; Menu flags
C3/C28D:	2901    	AND #$01       ; Actors shown?
C3/C28F:	F04E    	BEQ $C2DF      ; Delete if not
C3/C291:	A62D    	LDX $2D        ; Queue index
C3/C293:	7B      	TDC            ; ...
C3/C294:	BDC935  	LDA $35C9,X    ; Char slot
C3/C297:	85E0    	STA $E0        ; Memorize it
C3/C299:	20AEBC  	JSR $BCAE      ; Sign
C3/C29C:	F03F    	BEQ $C2DD      ; Exit if none
C3/C29E:	C901    	CMP #$01       ; Equipped?
C3/C2A0:	F014    	BEQ $C2B6      ; Branch if so
C3/C2A2:	C902    	CMP #$02       ; Up?
C3/C2A4:	F025    	BEQ $C2CB      ; Branch if so
C3/C2A6:	C904    	CMP #$04       ; Equal?
C3/C2A8:	F015    	BEQ $C2BF      ; Branch if so

Fork: Down sign
C3/C2AA:	A62D    	LDX $2D        ; Queue index
C3/C2AC:	C221    	REP #$21       ; 16-bit A; C-
C3/C2AE:	BDCA34  	LDA $34CA,X    ; Base anim ptr
C3/C2B1:	691800  	ADC #$0018     ; Adjust value
C3/C2B4:	801F    	BRA $C2D5      ; Set real ptr

Fork: Equipped sign
C3/C2B6:	A62D    	LDX $2D        ; Queue index
C3/C2B8:	C220    	REP #$20       ; 16-bit A
C3/C2BA:	BDCA34  	LDA $34CA,X    ; Base anim ptr
C3/C2BD:	8016    	BRA $C2D5      ; Set as current

Fork: Equal sign
C3/C2BF:	A62D    	LDX $2D        ; Queue index
C3/C2C1:	C221    	REP #$21       ; 16-bit A; C-
C3/C2C3:	BDCA34  	LDA $34CA,X    ; Base anim ptr
C3/C2C6:	692400  	ADC #$0024     ; Adjust value
C3/C2C9:	800A    	BRA $C2D5      ; Set real ptr

Fork: Up sign
C3/C2CB:	A62D    	LDX $2D        ; Queue index
C3/C2CD:	C221    	REP #$21       ; 16-bit A; C-
C3/C2CF:	BDCA34  	LDA $34CA,X    ; Base anim ptr
C3/C2D2:	690C00  	ADC #$000C     ; Adjust value
C3/C2D5:	9DC932  	STA $32C9,X    ; Set real ptr
C3/C2D8:	E220    	SEP #$20       ; ...
C3/C2DA:	202112  	JSR $1221      ; Define OAM
C3/C2DD:	38      	SEC            ; Set to requeue
C3/C2DE:	60      	RTS

Fork: Delete sign
C3/C2DF:	18      	CLC            ; Set to dequeue
C3/C2E0:	60      	RTS

Draw "Owned:" and "Equipped:" for Buy menu
C3/C2E1:	20F7C2  	JSR $C2F7      ; Color: Blue
C3/C2E4:	A042C3  	LDY #$C342     ; Text pointer
C3/C2E7:	20F902  	JSR $02F9      ; Draw "Owned:"
C3/C2EA:	A04BC3  	LDY #$C34B     ; Text pointer
C3/C2ED:	20F902  	JSR $02F9      ; Draw "Equipped:"
C3/C2F0:	8000    	BRA $C2F2      ; ...

Set text color to player's color
C3/C2F2:	A920    	LDA #$20       ; Palette 0
C3/C2F4:	8529    	STA $29        ; Color: User's
C3/C2F6:	60      	RTS

Set text color to blue
C3/C2F7:	A92C    	LDA #$2C       ; Palette 3
C3/C2F9:	8529    	STA $29        ; Color: Blue
C3/C2FB:	60      	RTS

Positioned text for shop menu
C3/C2FC:	0D79 969E9AA9A8A700            ; Weapon
C3/C305:	0F79 80ABA6A8AB00              ; Armor
C3/C30D:	0F79 88AD9EA600                ; Item
C3/C314:	0D79 919EA5A29CAC00            ; Relics
C3/C31D:	0D79 959EA79DA8AB00            ; Vendor
C3/C326:	0F7A 819498FFFF92848B8BFF      ; BUY  SELL  EXIT
        	     FF8497889300
C3/C338:	417A 868F00                    ; GP (owned)
C3/C33D:	2B7B 868F00                    ; GP (trade)
C3/C342:	B37A 8EB0A79E9DC100            ; Owned:
C3/C34B:	B37B 84AAAEA2A9A99E9DC100      ; Equipped:
C3/C357:	8F7B 819AADFF8FB0AB00          ; Bat Pwr
C3/C361:	8F7B 839E9F9EA7AC9E00          ; Defense
C3/C36B:	A57B C700                      ; 
C3/C36F:	1F79 87A2BEFF829AA7FF88FF      ; Hi! Can I help you?
        	     A19EA5A9FFB2A8AEBF00
C3/C385:	1F79 879EA5A9FFB2A8AEABAC      ; Help yourself!
        	     9EA59FBE00
C3/C396:	1F79 87A8B0FFA69AA7B2BF00      ; How many?
C3/C3A2:	1F79 96A19AAD9CA19AFFA0A8      ; Whatcha got?
        	     ADBF00
C3/C3B1:	1F79 87A8B0FFA69AA7B2BF00      ; How many?
C3/C3BD:	1F79 81B29EBEFFFFFFFFFFFF      ; "Bye!          "
        	     FFFFFFFF00
C3/C3CE:	1F79 98A8AEFFA79E9E9DFFA6      ; You need more GP!
        	     A8AB9EFF868FBE00
C3/C3E2:	1F79 93A8A8FFA69AA7B2BEFF      ; "Too many!       "
        	     FFFFFFFFFFFF00
C3/C3F5:	1F79 8EA79EC3ACFFA9A59EA7      ; "One's plenty! "
        	     ADB2BEFF00

===============================================================================

Jump table for ending sequences
C3/C406:	BEC5    	; 00: Fade screen before ending scene
C3/C408:	D4C5    	; 01: Return to event script
C3/C40A:	69C8    	; 02: Show aerial-view panning clouds
C3/C40C:	A6C8    	; 03: Wait before fading screen
C3/C40E:	ADC8    	; 04: Show spinning clouds
C3/C410:	E1C5    	; 05: Start sideview airship scene
C3/C412:	81C6    	; 06: Bogus...
C3/C414:	DCC6    	; 07: Bogus...
C3/C416:	DCC6    	; 08: Bogus...
C3/C418:	94C7    	; 09: Start aerial-view airship scene
C3/C41A:	D2C7    	; 0A: Show aerial-view airship
C3/C41C:	E1C7    	; 0B: Fade screen to white
C3/C41E:	D1C8    	; 0C: Start boat scene
C3/C420:	17C9    	; 0D: Show boat sprite
C3/C422:	CDC9    	; 0E: Bogus...
C3/C424:	CDC9    	; 0F: Bogus...
C3/C426:	CDC9    	; 10: Start skimming airship scene
C3/C428:	8CCA    	; 11: Show swooping bird
C3/C42A:	BECA    	; 12: Unused...
C3/C42C:	BECA    	; 13: Unused...
C3/C42E:	17CD    	; 14: Start frontview airship scene
C3/C430:	A0CD    	; 15: Show late bird flock
C3/C432:	EACD    	; 16: Bogus...
C3/C434:	EACD    	; 17: Bogus...
C3/C436:	A6CE    	; 18: Start aerial-view plains scene
C3/C438:	ECCE    	; 19: Bogus...
C3/C43A:	ECCE    	; 1A: Bogus...
C3/C43C:	ECCE    	; 1B: Bogus...
C3/C43E:	ECCE    	; 1C: Start rearview airship scene
C3/C440:	18D0    	; 1D: Bogus...
C3/C442:	18D0    	; 1E: Bogus...
C3/C444:	18D0    	; 1F: Bogus...
C3/C446:	2FD0    	; 20: Start final airship scene
C3/C448:	96D0    	; 21: Fade final airship
C3/C44A:	22D1    	; 22: Bogus...
C3/C44C:	22D1    	; 23: Bogus...
C3/C44E:	22D1    	; 24: Bogus...
C3/C450:	94C7    	; 25: Bogus...
C3/C452:	94C7    	; 26: Bogus...
C3/C454:	94C7    	; 27: Bogus...
C3/C456:	6EE2    	; 28: Start Shadow's scene
C3/C458:	B2E2    	; 29: Fade in "Shadow as"
C3/C45A:	C1E2    	; 2A: Switch Shadow's names
C3/C45C:	D0E2    	; 2B: Fade all but Shadow's name
C3/C45E:	94C7    	; 2C: Bogus...
C3/C460:	CEE6    	; 2D: Start first book scene
C3/C462:	DFE6    	; 2E: Animate first book
C3/C464:	EEE6    	; 2F: Wait 480 frames
C3/C466:	FAE6    	; 30: Pixelate and fade first book
C3/C468:	94C7    	; 31: Bogus...
C3/C46A:	F8E2    	; 32: Start Cyan's scene
C3/C46C:	19E3    	; 33: Fade in "Cyan as"
C3/C46E:	28E3    	; 34: Switch Cyan's names
C3/C470:	37E3    	; 35: Fade all but Cyan's name
C3/C472:	94C7    	; 36: Bogus...
C3/C474:	94C7    	; 37: Bogus...
C3/C476:	E7E2    	; 38: Fade actor's true name
C3/C478:	94C7    	; 39: Bogus...
C3/C47A:	94C7    	; 3A: Bogus...
C3/C47C:	94C7    	; 3B: Bogus...
C3/C47E:	E1E3    	; 3C: Start Mog's scene
C3/C480:	FDE3    	; 3D: Fade in "Mog as"
C3/C482:	0CE4    	; 3E: Switch Mog's names
C3/C484:	1BE4    	; 3F: Fade all but Mog's name
C3/C486:	4BE3    	; 40: Start Edgar and Sabin's scene
C3/C488:	64E3    	; 41: Fade in "Edgar as"
C3/C48A:	73E3    	; 42: Switch Edgar's names
C3/C48C:	82E3    	; 43: Show Sabin's name, fade Edgar's
C3/C48E:	A2E3    	; 44: Delete Edgar's name
C3/C490:	B2E3    	; 45: Switch Sabin's names
C3/C492:	32E4    	; 46: Start Gogo's scene
C3/C494:	59E4    	; 47: Fade in "Gogo as"
C3/C496:	7CE4    	; 48: Switch Gogo's names
C3/C498:	8BE4    	; 49: Fade all but Gogo's name
C3/C49A:	11E7    	; 4A: Start last book scene
C3/C49C:	2AE7    	; 4B: Wait 180 frames
C3/C49E:	36E7    	; 4C: Stop last book and fade in text
C3/C4A0:	49E7    	; 4D: Pixelate and fade last book
C3/C4A2:	94C7    	; 4E: Bogus...
C3/C4A4:	CDE3    	; 4F: Fade all but Sabin's name
C3/C4A6:	FAE4    	; 50: Start Gau's scene
C3/C4A8:	13E5    	; 51: Fade in "Gau as"
C3/C4AA:	22E5    	; 52: Switch Gau's names; create face
C3/C4AC:	34E5    	; 53: Fade all but Gau's name
C3/C4AE:	94C7    	; 54: Bogus...
C3/C4B0:	94C7    	; 55: Bogus...
C3/C4B2:	94C7    	; 56: Bogus...
C3/C4B4:	94C7    	; 57: Bogus...
C3/C4B6:	94C7    	; 58: Bogus...
C3/C4B8:	94C7    	; 59: Bogus...
C3/C4BA:	4BE5    	; 5A: Start Terra's scene
C3/C4BC:	64E5    	; 5B: Fade in "Terra as"
C3/C4BE:	73E5    	; 5C: Switch Terra's names, create glint
C3/C4C0:	85E5    	; 5D: Fade all but Terra's name
C3/C4C2:	94C7    	; 5E: Bogus...
C3/C4C4:	94C7    	; 5F: Bogus...
C3/C4C6:	94C7    	; 60: Bogus...
C3/C4C8:	94C7    	; 61: Bogus...
C3/C4CA:	94C7    	; 62: Bogus...
C3/C4CC:	94C7    	; 63: Bogus...
C3/C4CE:	9CE5    	; 64: Start Locke and Celes's scene
C3/C4D0:	B7E5    	; 65: Fade in "Locke as"
C3/C4D2:	C6E5    	; 66: Switch Locke's names
C3/C4D4:	D5E5    	; 67: Show Celes's name, fade Locke's
C3/C4D6:	F5E5    	; 68: Delete Locke's name
C3/C4D8:	05E6    	; 69: Switch Celes's names
C3/C4DA:	1EE6    	; 6A: Fade all but Celes's name
C3/C4DC:	94C7    	; 6B: Bogus...
C3/C4DE:	94C7    	; 6C: Bogus...
C3/C4E0:	94C7    	; 6D: Bogus...
C3/C4E2:	35E6    	; 6E: Start Relm's scene
C3/C4E4:	51E6    	; 6F: Fade in "Relm as"
C3/C4E6:	60E6    	; 70: Switch Relm's names
C3/C4E8:	6FE6    	; 71: Fade all but Relm's name
C3/C4EA:	94C7    	; 72: Bogus...
C3/C4EC:	94C7    	; 73: Bogus...
C3/C4EE:	94C7    	; 74: Bogus...
C3/C4F0:	94C7    	; 75: Bogus...
C3/C4F2:	94C7    	; 76: Bogus...
C3/C4F4:	94C7    	; 77: Bogus...
C3/C4F6:	86E6    	; 78: Start Strago's scene
C3/C4F8:	9CE6    	; 79: Fade in "Strago as"
C3/C4FA:	ABE6    	; 7A: Switch Strago's names
C3/C4FC:	BAE6    	; 7B: Fade all but Strago's name
C3/C4FE:	94C7    	; 7C: Bogus...
C3/C500:	94C7    	; 7D: Bogus...
C3/C502:	94C7    	; 7E: Bogus...
C3/C504:	94C7    	; 7F: Bogus...
C3/C506:	94C7    	; 80: Bogus...
C3/C508:	94C7    	; 81: Bogus...
C3/C50A:	5DE7    	; 82: Start Setzer's scene
C3/C50C:	94E7    	; 83: Fade in "Setzer as"
C3/C50E:	A3E7    	; 84: Switch Setzer's names
C3/C510:	B2E7    	; 85: Fade background
C3/C512:	C1E7    	; 86: Fade cards and name
C3/C514:	E5E7    	; 87: Start Umaro's scene
C3/C516:	04E8    	; 88: Fade in "Umaro as"
C3/C518:	13E8    	; 89: Switch Umaro's names
C3/C51A:	22E8    	; 8A: Fade all but Umaro's name

Display requested ending cinematic
C3/C51C:	08      	PHP            ; Push PS
C3/C51D:	C230    	REP #$30       ; 16-bit A, X, Y
C3/C51F:	48      	PHA            ; ...
C3/C520:	DA      	PHX            ; ...
C3/C521:	5A      	PHY            ; Push Y
C3/C522:	8B      	PHB            ; Push DB
C3/C523:	0B      	PHD            ; Push DP
C3/C524:	E220    	SEP #$20       ; 8-bit A
C3/C526:	A900    	LDA #$00       ; Zero A
C3/C528:	48      	PHA            ; Put on stack
C3/C529:	AB      	PLB            ; Set DB to 0
C3/C52A:	A20000  	LDX #$0000     ; Clear X
C3/C52D:	DA      	PHX            ; Put on stack
C3/C52E:	2B      	PLD            ; Set DP to 0
C3/C52F:	A20000  	LDX #$0000     ; ...
C3/C532:	8600    	STX $00        ; ...
C3/C534:	A97E    	LDA #$7E       ; Bank: 7E
C3/C536:	8D8321  	STA $2183      ; Set WRAM HB
C3/C539:	20C000  	JSR $00C0      ; Reroute NMI/IRQ
C3/C53C:	20FA68  	JSR $68FA      ; Reset variables
C3/C53F:	A02C01  	LDY #$012C     ; Scroll delay: 300
C3/C542:	8485    	STY $85        ; For true char name
C3/C544:	64B4    	STZ $B4        ; Blue credits: N
C3/C546:	2086C5  	JSR $C586      ; Stop VRAM DMA
C3/C549:	2076C5  	JSR $C576      ; Disable pad, etc.
C3/C54C:	2248CDD4	JSL $D4CD48    ; Init registers
C3/C550:	2224A4C3	JSL $C3A424    ; Init joypad...
C3/C554:	201411  	JSR $1114      ; Reset OAM, queue
C3/C557:	2073DD  	JSR $DD73      ; Clear VRAM
C3/C55A:	223BCFD4	JSL $D4CF3B    ; Back up data
C3/C55E:	AD0102  	LDA $0201      ; Event parameter
C3/C561:	8526    	STA $26        ; Set scene mode
C3/C563:	20A5C5  	JSR $C5A5      ; Handle scene
C3/C566:	224BCFD4	JSL $D4CF4B    ; Restore backup
C3/C56A:	2076C5  	JSR $C576      ; Disable pad, etc.
C3/C56D:	C230    	REP #$30       ; 16-bit A, X, Y
C3/C56F:	2B      	PLD            ; Pull DP
C3/C570:	AB      	PLB            ; Pull DB
C3/C571:	7A      	PLY            ; Pull Y
C3/C572:	FA      	PLX            ; ...
C3/C573:	68      	PLA            ; ...
C3/C574:	28      	PLP            ; Pull PS
C3/C575:	6B      	RTL

Disable screen, interrupts, joypad, and HDMA
C3/C576:	A98F    	LDA #$8F       ; BRT: 15 and OFF
C3/C578:	8D0021  	STA $2100      ; Disable screen
C3/C57B:	7B      	TDC            ; Clear A
C3/C57C:	8D0042  	STA $4200      ; Disable INT, pad
C3/C57F:	8D0B42  	STA $420B      ; Disable DMA...
C3/C582:	8D0C42  	STA $420C      ; Disable HDMA
C3/C585:	60      	RTS

Reset variables for automatic uploads during NMI
C3/C586:	7B      	TDC            ; Clear A
C3/C587:	A8      	TAY            ; Clear Y
C3/C588:	841B    	STY $1B        ; Halt VRAM B
C3/C58A:	841D    	STY $1D        ; Clear src-B LBs
C3/C58C:	851F    	STA $1F        ; Clear src-B HB
C3/C58E:	8416    	STY $16        ; Clear src-A LBs
C3/C590:	8518    	STA $18        ; Clear src-A HB
C3/C592:	A00100  	LDY #$0001     ; Bytes: 1
C3/C595:	8419    	STY $19        ; Set data size B
C3/C597:	8412    	STY $12        ; Set data size A
C3/C599:	A0FF7F  	LDY #$7FFF     ; $7FFF
C3/C59C:	8414    	STY $14        ; Set VRAM ptr A
C3/C59E:	60      	RTS

Enable color addition on BG1
C3/C59F:	A901    	LDA #$01       ; BG1: ADD mode
C3/C5A1:	8D3121  	STA $2131      ; Set register
C3/C5A4:	60      	RTS

Handle ending sequence
C3/C5A5:	7B      	TDC            ; Clear A
C3/C5A6:	A526    	LDA $26        ; Scene mode
C3/C5A8:	C9FF    	CMP #$FF       ; Exit to map?
C3/C5AA:	F011    	BEQ $C5BD      ; Exit if so
C3/C5AC:	C220    	REP #$20       ; 16-bit A
C3/C5AE:	0A      	ASL A          ; Double it
C3/C5AF:	AA      	TAX            ; Index it
C3/C5B0:	E220    	SEP #$20       ; 8-bit A
C3/C5B2:	FC06C4  	JSR ($C406,X)  ; Handle mode
C3/C5B5:	20B011  	JSR $11B0      ; Run anim queue
C3/C5B8:	206813  	JSR $1368      ; Refresh screen
C3/C5BB:	80E8    	BRA $C5A5      ; Loop
C3/C5BD:	60      	RTS

00: Fade screen before ending scene
C3/C5BE:	A420    	LDY $20        ; Delay expired?
C3/C5C0:	D011    	BNE $C5D3      ; Exit if not
C3/C5C2:	A901    	LDA #$01       ; C3/C5D4
C3/C5C4:	8526    	STA $26        ; Next: Exit
C3/C5C6:	A00F00  	LDY #$000F     ; Frames: 15
C3/C5C9:	8420    	STY $20        ; Set exit delay
C3/C5CB:	A900    	LDA #$00       ; Min slot: 0
C3/C5CD:	A0FDD1  	LDY #$D1FD     ; C3/D1FD
C3/C5D0:	207311  	JSR $1173      ; Queue fade-out
C3/C5D3:	60      	RTS

01: Return to event script after delay
C3/C5D4:	A420    	LDY $20        ; Delay expired?
C3/C5D6:	D003    	BNE $C5DB      ; Exit if not
C3/C5D8:	4C69E2  	JMP $E269      ; End scene
C3/C5DB:	60      	RTS

Set text for credits to be blue
C3/C5DC:	A901    	LDA #$01       ; Blue text: Y
C3/C5DE:	85B4    	STA $B4        ; Set color mode
C3/C5E0:	60      	RTS

05: Start sideview airship scene
C3/C5E1:	20DCC5  	JSR $C5DC      ; Blue text: Y
C3/C5E4:	22D7CED4	JSL $D4CED7    ; Init registers
C3/C5E8:	200CD4  	JSR $D40C      ; Upload GFX, map
C3/C5EB:	20E6D3  	JSR $D3E6      ; Reset M7 vars
C3/C5EE:	22FCCBD4	JSL $D4CBFC    ; Queue HDMA 1-7
C3/C5F2:	A01000  	LDY #$0010     ; Zoom-out: 16
C3/C5F5:	848E    	STY $8E        ; Set for airship
C3/C5F7:	C220    	REP #$20       ; 16-bit A
C3/C5F9:	A9F1FF  	LDA #$FFF1     ; H-Scroll: -15
C3/C5FC:	8F8DB67E	STA $7EB68D    ; Set for airship
C3/C600:	A92E00  	LDA #$002E     ; V-Scroll: 46
C3/C603:	8F8FB67E	STA $7EB68F    ; Set for airship
C3/C607:	A97100  	LDA #$0071     ; Center X: 113
C3/C60A:	8F95B67E	STA $7EB695    ; Set for airship
C3/C60E:	A98D00  	LDA #$008D     ; Center Y: 141
C3/C611:	8F97B67E	STA $7EB697    ; Set for airship
C3/C615:	E220    	SEP #$20       ; 8-bit A
C3/C617:	A05E00  	LDY #$005E     ; Vertical angle
C3/C61A:	84C7    	STY $C7        ; Set for clouds
C3/C61C:	A0002F  	LDY #$2F00     ; Base divisor
C3/C61F:	84C5    	STY $C5        ; Set matrices'
C3/C621:	A00001  	LDY #$0100     ; Center X: 256
C3/C624:	84B7    	STY $B7        ; Set for clouds
C3/C626:	A01103  	LDY #$0311     ; Center Y: 785
C3/C629:	84B9    	STY $B9        ; Set for clouds
C3/C62B:	A08000  	LDY #$0080     ; BG1's X: 128
C3/C62E:	8435    	STY $35        ; Set for clouds
C3/C630:	A09102  	LDY #$0291     ; BG1's Y: 657
C3/C633:	8437    	STY $37        ; Set for clouds
C3/C635:	20D2DD  	JSR $DDD2      ; Make matrix tbl
C3/C638:	A400    	LDY $00        ; Scene timer: 0
C3/C63A:	84CF    	STY $CF        ; Set for text
C3/C63C:	206DD9  	JSR $D96D      ; Build text OAM
C3/C63F:	A902    	LDA #$02       ; Min slot: 16
C3/C641:	A0B9D7  	LDY #$D7B9     ; C3/D7B9
C3/C644:	207311  	JSR $1173      ; Queue credits
C3/C647:	A902    	LDA #$02       ; Min slot: 16
C3/C649:	A081C6  	LDY #$C681     ; C3/C681
C3/C64C:	207311  	JSR $1173      ; Queue M7 anim
C3/C64F:	A900    	LDA #$00       ; Min slot: 0
C3/C651:	A0F2D0  	LDY #$D0F2     ; C3/D0F2
C3/C654:	207311  	JSR $1173      ; Queue rotor anim
C3/C657:	205CD1  	JSR $D15C      ; Make text black
C3/C65A:	2073D1  	JSR $D173      ; Load cloud colors
C3/C65D:	2018D0  	JSR $D018      ; Load sky/plane's
C3/C660:	A903    	LDA #$03       ; C3/C8A6
C3/C662:	8526    	STA $26        ; Next: Fade-out
C3/C664:	A01C02  	LDY #$021C     ; Frames: 540
C3/C667:	8420    	STY $20        ; Set fade delay
C3/C669:	4C6CC6  	JMP $C66C      ; ...

Queue field fade-in
C3/C66C:	A900    	LDA #$00       ; Min slot: 0
C3/C66E:	A0CCD1  	LDY #$D1CC     ; C3/D1CC
C3/C671:	207311  	JSR $1173      ; Queue fade-in
C3/C674:	60      	RTS

Set brightness before fading in colors manually
C3/C675:	A901    	LDA #$01       ; BRT: 1 and ON
C3/C677:	8544    	STA $44        ; Set brightness
C3/C679:	206813  	JSR $1368      ; Refresh screen
C3/C67C:	A90F    	LDA #$0F       ; BRT: 15 and ON
C3/C67E:	8544    	STA $44        ; Set brightness
C3/C680:	60      	RTS

Shrink sideview airship and scroll clouds
C3/C681:	AA      	TAX            ; Index mode
C3/C682:	7C85C6  	JMP ($C685,X)  ; Handle mode

Jump table for the above
C3/C685:	8BC6    	; Initialize unused timer
C3/C687:	9AC6    	; Shrink airship, scroll clouds
C3/C689:	BAC6    	; Scroll clouds

Mode 0: Initialize unused timer...
C3/C68B:	A62D    	LDX $2D        ; Queue index
C3/C68D:	FE4936  	INC $3649,X    ; Mode +1
C3/C690:	C220    	REP #$20       ; 16-bit A
C3/C692:	A94E02  	LDA #$024E     ; Frames: 590
C3/C695:	9D4933  	STA $3349,X    ; Set mode timer
C3/C698:	E220    	SEP #$20       ; 8-bit A

Mode 1: Shrink airship, scroll clouds
C3/C69A:	A62D    	LDX $2D        ; Queue index
C3/C69C:	A523    	LDA $23        ; NMI count
C3/C69E:	2901    	AND #$01       ; Odd value?
C3/C6A0:	D004    	BNE $C6A6      ; Branch if so
C3/C6A2:	C220    	REP #$20       ; 16-bit A
C3/C6A4:	E68E    	INC $8E        ; Matrix A +1
C3/C6A6:	C220    	REP #$20       ; 16-bit A
C3/C6A8:	A58E    	LDA $8E        ; Matrix A
C3/C6AA:	8D0006  	STA $0600      ; Set for airship
C3/C6AD:	9CC207  	STZ $07C2      ; Matrix B: 0
C3/C6B0:	9C8409  	STZ $0984      ; Matrix C: 0
C3/C6B3:	20BFC6  	JSR $C6BF      ; Scroll clouds
C3/C6B6:	E220    	SEP #$20       ; ...
C3/C6B8:	38      	SEC            ; Set to requeue
C3/C6B9:	60      	RTS

Mode 2: Scroll clouds (unused)
C3/C6BA:	20BFC6  	JSR $C6BF      ; Scroll clouds
C3/C6BD:	38      	SEC            ; Set to requeue
C3/C6BE:	60      	RTS

Scroll clouds under sideview airship
C3/C6BF:	C220    	REP #$20       ; 16-bit A
C3/C6C1:	C635    	DEC $35        ; BG1's X -1
C3/C6C3:	C6B7    	DEC $B7        ; Center X -1
C3/C6C5:	A535    	LDA $35        ; BG1 X-Pos
C3/C6C7:	8D91B6  	STA $B691      ; To HDMA table
C3/C6CA:	A537    	LDA $37        ; BG1 Y-Pos
C3/C6CC:	8D93B6  	STA $B693      ; To HDMA table
C3/C6CF:	A5B7    	LDA $B7        ; Center X
C3/C6D1:	8D99B6  	STA $B699      ; To HDMA table
C3/C6D4:	A5B9    	LDA $B9        ; Center Y
C3/C6D6:	8D9BB6  	STA $B69B      ; To HDMA table
C3/C6D9:	E220    	SEP #$20       ; 8-bit A
C3/C6DB:	60      	RTS

Set to fade credits
C3/C6DC:	A9C3    	LDA #$C3       ; C3/10F4
C3/C6DE:	85ED    	STA $ED        ; Set src HB
C3/C6E0:	A904    	LDA #$04       ; Slowness: 4
C3/C6E2:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/C6E5:	84E7    	STY $E7        ; ...
C3/C6E7:	A2F410  	LDX #$10F4     ; Black palette
C3/C6EA:	86EB    	STX $EB        ; ...
C3/C6EC:	20AA0F  	JSR $0FAA      ; Do big font
C3/C6EF:	A9C3    	LDA #$C3       ; ...
C3/C6F1:	85ED    	STA $ED        ; ...
C3/C6F3:	A904    	LDA #$04       ; Slowness: 4
C3/C6F5:	A0E931  	LDY #$31E9     ; To OBJ pal 5
C3/C6F8:	84E7    	STY $E7        ; ...
C3/C6FA:	A2F410  	LDX #$10F4     ; Black palette
C3/C6FD:	86EB    	STX $EB        ; ...
C3/C6FF:	20AA0F  	JSR $0FAA      ; Do small font
C3/C702:	60      	RTS

Set to fade in credits to white and blue
C3/C703:	A9C2    	LDA #$C2       ; Bank: C2
C3/C705:	85ED    	STA $ED        ; Set src HB
C3/C707:	A904    	LDA #$04       ; Slowness: 4
C3/C709:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/C70C:	84E7    	STY $E7        ; ...
C3/C70E:	A25497  	LDX #$9754     ; C2/9754
C3/C711:	86EB    	STX $EB        ; ...
C3/C713:	20AA0F  	JSR $0FAA      ; Do big font
C3/C716:	A9C2    	LDA #$C2       ; ...
C3/C718:	85ED    	STA $ED        ; ...
C3/C71A:	A904    	LDA #$04       ; Slowness: 4
C3/C71C:	A0E931  	LDY #$31E9     ; To OBJ pal 5
C3/C71F:	84E7    	STY $E7        ; ...
C3/C721:	A24C97  	LDX #$974C     ; C2/974C
C3/C724:	86EB    	STX $EB        ; ...
C3/C726:	20AA0F  	JSR $0FAA      ; Do small font
C3/C729:	60      	RTS

Set to fade in credits to dark blue
C3/C72A:	A9C2    	LDA #$C2       ; Bank: C2
C3/C72C:	85ED    	STA $ED        ; Set src HB
C3/C72E:	A904    	LDA #$04       ; Slowness: 4
C3/C730:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/C733:	84E7    	STY $E7        ; ...
C3/C735:	A24497  	LDX #$9744     ; C2/9744
C3/C738:	86EB    	STX $EB        ; ...
C3/C73A:	20AA0F  	JSR $0FAA      ; Do big font
C3/C73D:	A9C2    	LDA #$C2       ; ...
C3/C73F:	85ED    	STA $ED        ; ...
C3/C741:	A904    	LDA #$04       ; Slowness: 4
C3/C743:	A0E931  	LDY #$31E9     ; To OBJ pal 5
C3/C746:	84E7    	STY $E7        ; ...
C3/C748:	A23C97  	LDX #$973C     ; C2/973C
C3/C74B:	86EB    	STX $EB        ; ...
C3/C74D:	20AA0F  	JSR $0FAA      ; Do small font
C3/C750:	60      	RTS

Load non-text sprite colors for Mode 7 scene
C3/C751:	A9C2    	LDA #$C2       ; Source HB
C3/C753:	A04931  	LDY #$3149     ; To OBJ pal 0
C3/C756:	A2F497  	LDX #$97F4     ; Source LBs
C3/C759:	208E0F  	JSR $0F8E      ; Do balloon's
C3/C75C:	A9C2    	LDA #$C2       ; Source HB
C3/C75E:	A06931  	LDY #$3169     ; To OBJ pal 1
C3/C761:	A29497  	LDX #$9794     ; Source LBs
C3/C764:	208E0F  	JSR $0F8E      ; Do airships'
C3/C767:	A9C2    	LDA #$C2       ; Source HB
C3/C769:	A08931  	LDY #$3189     ; To OBJ pal 2
C3/C76C:	A2B497  	LDX #$97B4     ; Source LBs
C3/C76F:	208E0F  	JSR $0F8E      ; Do boat's
C3/C772:	A9C2    	LDA #$C2       ; Source HB
C3/C774:	A0A931  	LDY #$31A9     ; To OBJ pal 3
C3/C777:	A2D497  	LDX #$97D4     ; Source LBs
C3/C77A:	208E0F  	JSR $0F8E      ; Do cockpit's
C3/C77D:	A9C2    	LDA #$C2       ; Source HB
C3/C77F:	A00932  	LDY #$3209     ; To OBJ pal 6
C3/C782:	A23498  	LDX #$9834     ; Source LBs
C3/C785:	208E0F  	JSR $0F8E      ; Do gray birds'
C3/C788:	A9C2    	LDA #$C2       ; Source HB
C3/C78A:	A02932  	LDY #$3229     ; To OBJ pal 7
C3/C78D:	A21498  	LDX #$9814     ; Source LBs
C3/C790:	208E0F  	JSR $0F8E      ; Do spray's
C3/C793:	60      	RTS

09: Start aerial-view airship scene
C3/C794:	20DCC5  	JSR $C5DC      ; Blue text: Y
C3/C797:	22D7CED4	JSL $D4CED7    ; Init registers
C3/C79B:	2022D5  	JSR $D522      ; Upload GFX, map
C3/C79E:	20E6D3  	JSR $D3E6      ; Reset M7 vars
C3/C7A1:	228FCBD4	JSL $D4CB8F    ; HDMA: Matrices
C3/C7A5:	2051C7  	JSR $C751      ; Load OBJ colors
C3/C7A8:	205CD1  	JSR $D15C      ; Make text black
C3/C7AB:	2073D1  	JSR $D173      ; Load cloud colors
C3/C7AE:	A0708A  	LDY #$8A70     ; Anim ptr LBs
C3/C7B1:	A9C2    	LDA #$C2       ; Anim ptr HB
C3/C7B3:	2025D2  	JSR $D225      ; Queue cloud anim
C3/C7B6:	2083D9  	JSR $D983      ; Build text OAM
C3/C7B9:	A400    	LDY $00        ; Scene timer: 0
C3/C7BB:	84CF    	STY $CF        ; Set for text
C3/C7BD:	A902    	LDA #$02       ; Min slot: 16
C3/C7BF:	A0CBD7  	LDY #$D7CB     ; C3/D7CB
C3/C7C2:	207311  	JSR $1173      ; Queue credits
C3/C7C5:	20A0D2  	JSR $D2A0      ; Queue M7 handler
C3/C7C8:	E626    	INC $26        ; Next: C3/C7D2
C3/C7CA:	A0C003  	LDY #$03C0     ; Frames: 960
C3/C7CD:	8420    	STY $20        ; Set plane delay
C3/C7CF:	4C6CC6  	JMP $C66C      ; Queue fade-in

0A: Show aerial-view airship and its shadow
C3/C7D2:	A420    	LDY $20        ; Delay expired?
C3/C7D4:	D00A    	BNE $C7E0      ; Exit if not
C3/C7D6:	E626    	INC $26        ; Next: C3/C7E1
C3/C7D8:	A07008  	LDY #$0870     ; Frames: 2160
C3/C7DB:	8420    	STY $20        ; Set fade delay
C3/C7DD:	2002C8  	JSR $C802      ; Create sprites
C3/C7E0:	60      	RTS

0B: Fade screen to white
C3/C7E1:	A420    	LDY $20        ; Delay expired?
C3/C7E3:	D01C    	BNE $C801      ; Exit if not
C3/C7E5:	A903    	LDA #$03       ; C3/C8A6
C3/C7E7:	8526    	STA $26        ; Next: Black out
C3/C7E9:	A07800  	LDY #$0078     ; Frames: 120
C3/C7EC:	8420    	STY $20        ; Set fade delay
C3/C7EE:	A9C3    	LDA #$C3       ; Bank: C3
C3/C7F0:	85ED    	STA $ED        ; Set src HB
C3/C7F2:	A902    	LDA #$02       ; Slowness: 2
C3/C7F4:	A0A930  	LDY #$30A9     ; To BG pal 3
C3/C7F7:	84E7    	STY $E7        ; ...
C3/C7F9:	A2D410  	LDX #$10D4     ; White palette
C3/C7FC:	86EB    	STX $EB        ; ...
C3/C7FE:	20AA0F  	JSR $0FAA      ; Whiten clouds
C3/C801:	60      	RTS

Create aerial-view airship and its shadow
C3/C802:	2046C8  	JSR $C846      ; Queue ship fn
C3/C805:	C220    	REP #$20       ; 16-bit A
C3/C807:	A9DC8C  	LDA #$8CDC     ; Ship anim ptr
C3/C80A:	204FC8  	JSR $C84F      ; Set spd, timer
C3/C80D:	E220    	SEP #$20       ; 8-bit A
C3/C80F:	A9C2    	LDA #$C2       ; Bank: C2
C3/C811:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/C815:	A9F8    	LDA #$F8       ; X: 248
C3/C817:	9FCA337E	STA $7E33CA,X  ; Set airship's
C3/C81B:	A9A0    	LDA #$A0       ; Y: 160
C3/C81D:	9F4A347E	STA $7E344A,X  ; Set airship's
C3/C821:	A903    	LDA #$03       ; Min slot: 24
C3/C823:	A084DE  	LDY #$DE84     ; C3/DE84
C3/C826:	207311  	JSR $1173      ; Queue shadow fn
C3/C829:	C220    	REP #$20       ; 16-bit A
C3/C82B:	A9F08C  	LDA #$8CF0     ; Shadow anim ptr
C3/C82E:	204FC8  	JSR $C84F      ; Set spd, timer
C3/C831:	E220    	SEP #$20       ; 8-bit A
C3/C833:	A9C2    	LDA #$C2       ; Bank: C2
C3/C835:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/C839:	A9F8    	LDA #$F8       ; X: 248
C3/C83B:	9FCA337E	STA $7E33CA,X  ; Set shadow's
C3/C83F:	A9B0    	LDA #$B0       ; Y: 176
C3/C841:	9F4A347E	STA $7E344A,X  ; Set shadow's
C3/C845:	60      	RTS

Queue linearly moving temporary sprite
C3/C846:	A901    	LDA #$01       ; Min slot: 8
C3/C848:	A084DE  	LDY #$DE84     ; C3/DE84
C3/C84B:	207311  	JSR $1173      ; Queue OAM fn
C3/C84E:	60      	RTS

Initialize data for aerial-view airship or its shadow
C3/C84F:	9FC9327E	STA $7E32C9,X  ; Set anim ptr
C3/C853:	A9C0FF  	LDA #$FFC0     ; H-Spd: -0.25 px
C3/C856:	9FC9347E	STA $7E34C9,X  ; Set sprite's
C3/C85A:	A9E0FF  	LDA #$FFE0     ; V-Spd: -0.125 px
C3/C85D:	9F49357E	STA $7E3549,X  ; Set sprite's
C3/C861:	A90004  	LDA #$0400     ; Frames: 1024
C3/C864:	9F49337E	STA $7E3349,X  ; Set hide delay
C3/C868:	60      	RTS

02: Show aerial-view panning clouds
C3/C869:	207EC8  	JSR $C87E      ; Load map, etc.
C3/C86C:	A0F000  	LDY #$00F0     ; Frames: 240
C3/C86F:	8420    	STY $20        ; Set fade delay
C3/C871:	A03C8B  	LDY #$8B3C     ; Anim ptr LBs
C3/C874:	A9C2    	LDA #$C2       ; Anim ptr HB
C3/C876:	2025D2  	JSR $D225      ; Queue cloud anim
C3/C879:	E626    	INC $26        ; Next: Fade-out
C3/C87B:	4C6CC6  	JMP $C66C      ; Queue fade-in

Initialize data for spinning or panning clouds
C3/C87E:	22D7CED4	JSL $D4CED7    ; Init registers
C3/C882:	2022D5  	JSR $D522      ; Upload GFX, map
C3/C885:	20E6D3  	JSR $D3E6      ; Reset M7 vars
C3/C888:	228FCBD4	JSL $D4CB8F    ; HDMA: Matrices
C3/C88C:	2051C7  	JSR $C751      ; Load OBJ colors
C3/C88F:	205CD1  	JSR $D15C      ; Make text black
C3/C892:	A00002  	LDY #$0200     ; Vertical angle
C3/C895:	84C7    	STY $C7        ; Set for clouds
C3/C897:	A000F0  	LDY #$F000     ; Base divisor
C3/C89A:	84C5    	STY $C5        ; Set matrices'
C3/C89C:	20D2DD  	JSR $DDD2      ; Make matrix tbl
C3/C89F:	2073D1  	JSR $D173      ; Load cloud colors
C3/C8A2:	20A0D2  	JSR $D2A0      ; Queue M7 handler
C3/C8A5:	60      	RTS

03: Wait before fading screen
C3/C8A6:	A420    	LDY $20        ; Delay expired?
C3/C8A8:	D002    	BNE $C8AC      ; Exit if not
C3/C8AA:	6426    	STZ $26        ; Next: Fade-out
C3/C8AC:	60      	RTS

04: Show spinning clouds
C3/C8AD:	207EC8  	JSR $C87E      ; Load map, etc.
C3/C8B0:	A00080  	LDY #$8000     ; Vertical angle
C3/C8B3:	84C7    	STY $C7        ; Set for clouds
C3/C8B5:	A00080  	LDY #$8000     ; Base divisor
C3/C8B8:	84C5    	STY $C5        ; Set matrices'
C3/C8BA:	20D2DD  	JSR $DDD2      ; Make matrix tbl
C3/C8BD:	A07800  	LDY #$0078     ; Frames: 120
C3/C8C0:	8420    	STY $20        ; Set fade delay
C3/C8C2:	A0428B  	LDY #$8B42     ; Anim ptr LBs
C3/C8C5:	A9C2    	LDA #$C2       ; Anim ptr HB
C3/C8C7:	2025D2  	JSR $D225      ; Queue cloud anim
C3/C8CA:	A903    	LDA #$03       ; C3/C8A6
C3/C8CC:	8526    	STA $26        ; Next: Fade-out
C3/C8CE:	4C6CC6  	JMP $C66C      ; Queue fade-in

0C: Start boat scene
C3/C8D1:	22D7CED4	JSL $D4CED7    ; Init registers
C3/C8D5:	209FC5  	JSR $C59F      ; Color math: BG1
C3/C8D8:	20AAD5  	JSR $D5AA      ; Upload GFX, map
C3/C8DB:	20E6D3  	JSR $D3E6      ; Reset M7 vars
C3/C8DE:	228FCBD4	JSL $D4CB8F    ; HDMA: Matrices
C3/C8E2:	A00010  	LDY #$1000     ; Base divisor
C3/C8E5:	84C5    	STY $C5        ; Set matrices'
C3/C8E7:	205CD1  	JSR $D15C      ; Make text black
C3/C8EA:	2073D1  	JSR $D173      ; Load BG1 colors
C3/C8ED:	2051C7  	JSR $C751      ; Load OBJ colors
C3/C8F0:	A0D98A  	LDY #$8AD9     ; Anim ptr LBs
C3/C8F3:	A9C2    	LDA #$C2       ; Anim ptr HB
C3/C8F5:	2025D2  	JSR $D225      ; Queue sea anim
C3/C8F8:	20C7CA  	JSR $CAC7      ; Create birds
C3/C8FB:	2099D9  	JSR $D999      ; Build text OAM
C3/C8FE:	A400    	LDY $00        ; Scene timer: 0
C3/C900:	84CF    	STY $CF        ; Set for text
C3/C902:	A902    	LDA #$02       ; Min slot: 16
C3/C904:	A019D8  	LDY #$D819     ; C3/D819
C3/C907:	207311  	JSR $1173      ; Queue credits
C3/C90A:	20A0D2  	JSR $D2A0      ; Queue M7 handler
C3/C90D:	A03804  	LDY #$0438     ; Delay: 1080
C3/C910:	8420    	STY $20        ; Set boat OBJ's
C3/C912:	E626    	INC $26        ; Next: C3/C917
C3/C914:	4C6CC6  	JMP $C66C      ; Queue fade-in

0D: Show boat sprite
C3/C917:	A420    	LDY $20        ; Delay expired?
C3/C919:	D00A    	BNE $C925      ; Exit if not
C3/C91B:	204EC9  	JSR $C94E      ; Create boat
C3/C91E:	6426    	STZ $26        ; Next: Fade-out
C3/C920:	A0D002  	LDY #$02D0     ; Frames: 720
C3/C923:	8420    	STY $20        ; Set fade delay
C3/C925:	60      	RTS

Create boat sprite (unused)
C3/C926:	20D2E9  	JSR $E9D2      ; Queue OAM fn
C3/C929:	C220    	REP #$20       ; 16-bit A
C3/C92B:	A9FDF7  	LDA #$F7FD     ; Anim table ptr
C3/C92E:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/C932:	A9C0FF  	LDA #$FFC0     ; H-Spd: -0.25 px
C3/C935:	9FC9347E	STA $7E34C9,X  ; Set sprite's
C3/C939:	E220    	SEP #$20       ; 8-bit A
C3/C93B:	A9CF    	LDA #$CF       ; Bank: CF
C3/C93D:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/C941:	A9F8    	LDA #$F8       ; X: 248
C3/C943:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/C947:	A970    	LDA #$70       ; Y: 112
C3/C949:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/C94D:	60      	RTS

Create boat sprite
C3/C94E:	20D2E9  	JSR $E9D2      ; Queue L-Half
C3/C951:	C220    	REP #$20       ; 16-bit A
C3/C953:	A909F8  	LDA #$F809     ; Anim table ptr
C3/C956:	9FC9327E	STA $7E32C9,X  ; Set L-Half's
C3/C95A:	A9C0FF  	LDA #$FFC0     ; H-Spd: -0.25 px
C3/C95D:	9FC9347E	STA $7E34C9,X  ; Set L-Half's
C3/C961:	E220    	SEP #$20       ; 8-bit A
C3/C963:	A9CF    	LDA #$CF       ; Bank: CF
C3/C965:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/C969:	A9F8    	LDA #$F8       ; X: 248
C3/C96B:	9FCA337E	STA $7E33CA,X  ; Set L-Half's
C3/C96F:	A950    	LDA #$50       ; Y: 80
C3/C971:	9F4A347E	STA $7E344A,X  ; Set L-Half's
C3/C975:	A901    	LDA #$01       ; Min slot: 8
C3/C977:	A0A2C9  	LDY #$C9A2     ; C3/C9A2
C3/C97A:	207311  	JSR $1173      ; Queue R-Half
C3/C97D:	C220    	REP #$20       ; 16-bit A
C3/C97F:	A9FDF7  	LDA #$F7FD     ; Anim table ptr
C3/C982:	9FC9327E	STA $7E32C9,X  ; Set R-Half's
C3/C986:	A9C0FF  	LDA #$FFC0     ; H-Spd: -0.25 px
C3/C989:	9FC9347E	STA $7E34C9,X  ; Set R-Half's
C3/C98D:	E220    	SEP #$20       ; 8-bit A
C3/C98F:	A9CF    	LDA #$CF       ; Bank: CF
C3/C991:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/C995:	A9F8    	LDA #$F8       ; X: 248
C3/C997:	9FCA337E	STA $7E33CA,X  ; Set R-Half's
C3/C99B:	A950    	LDA #$50       ; Y: 80
C3/C99D:	9F4A347E	STA $7E344A,X  ; Set R-Half's
C3/C9A1:	60      	RTS

Animate boat's right half
C3/C9A2:	AA      	TAX            ; Index mode
C3/C9A3:	7CA6C9  	JMP ($C9A6,X)  ; Handle mode

Jump table for the above
C3/C9A6:	AAC9    	; Initialize timers
C3/C9A8:	BCC9    	; Sustain sprite

Mode 0: Initialize timers
C3/C9AA:	A62D    	LDX $2D        ; Queue index
C3/C9AC:	FE4936  	INC $3649,X    ; Mode +1
C3/C9AF:	C220    	REP #$20       ; 16-bit A
C3/C9B1:	A94000  	LDA #$0040     ; Frames: 64
C3/C9B4:	9D4933  	STA $3349,X    ; Set show delay
C3/C9B7:	E220    	SEP #$20       ; 8-bit A
C3/C9B9:	200612  	JSR $1206      ; Set pose timer

Mode 1: Sustain sprite
C3/C9BC:	A62D    	LDX $2D        ; Queue index
C3/C9BE:	BC4933  	LDY $3349,X    ; Delay expired?
C3/C9C1:	D005    	BNE $C9C8      ; Branch if not
C3/C9C3:	20C0DE  	JSR $DEC0      ; Scroll & OAM
C3/C9C6:	38      	SEC            ; Set to requeue
C3/C9C7:	60      	RTS            ; Exit
C3/C9C8:	20E5CF  	JSR $CFE5      ; Delay -1
C3/C9CB:	38      	SEC            ; Set to requeue
C3/C9CC:	60      	RTS

10: Start skimming airship scene
C3/C9CD:	22D7CED4	JSL $D4CED7    ; Init registers
C3/C9D1:	209FC5  	JSR $C59F      ; Color math: BG1
C3/C9D4:	20DAD5  	JSR $D5DA      ; Upload GFX, map
C3/C9D7:	2071CA  	JSR $CA71      ; Get sky; init M7
C3/C9DA:	208CD3  	JSR $D38C      ; Queue gradient
C3/C9DD:	206FD3  	JSR $D36F      ; HDMA: Color math
C3/C9E0:	2051C7  	JSR $C751      ; Load OBJ colors
C3/C9E3:	A02800  	LDY #$0028     ; Y: 40
C3/C9E6:	843B    	STY $3B        ; Set BG2 Y-Pos
C3/C9E8:	A06DFF  	LDY #$FF6D     ; Mod index: 109
C3/C9EB:	84C3    	STY $C3        ; Set matrices'
C3/C9ED:	A04C03  	LDY #$034C     ; Vertical angle
C3/C9F0:	84C7    	STY $C7        ; Set for sea
C3/C9F2:	A000FD  	LDY #$FD00     ; Base divisor
C3/C9F5:	84C5    	STY $C5        ; Set matrices'
C3/C9F7:	20D2DD  	JSR $DDD2      ; Make matrix tbl
C3/C9FA:	20FDCA  	JSR $CAFD      ; Create birds
C3/C9FD:	A902    	LDA #$02       ; Min slot: 16
C3/C9FF:	A0C6CB  	LDY #$CBC6     ; C3/CBC6
C3/CA02:	207311  	JSR $1173      ; Queue airship
C3/CA05:	C220    	REP #$20       ; 16-bit A
C3/CA07:	A9B18B  	LDA #$8BB1     ; Anim table ptr
C3/CA0A:	9FC9327E	STA $7E32C9,X  ; Set airship's
C3/CA0E:	E220    	SEP #$20       ; 8-bit A
C3/CA10:	A9C2    	LDA #$C2       ; Bank: C2
C3/CA12:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/CA16:	A978    	LDA #$78       ; X: 120
C3/CA18:	9FCA337E	STA $7E33CA,X  ; C3/CBDB...
C3/CA1C:	A958    	LDA #$58       ; Base Y/2: 88
C3/CA1E:	9F4A347E	STA $7E344A,X  ; C3/CBE0...
C3/CA22:	20D2E9  	JSR $E9D2      ; Queue shadow
C3/CA25:	C220    	REP #$20       ; 16-bit A
C3/CA27:	A9EC8B  	LDA #$8BEC     ; Anim table ptr
C3/CA2A:	9FC9327E	STA $7E32C9,X  ; Set shadow's
C3/CA2E:	E220    	SEP #$20       ; 8-bit A
C3/CA30:	A9C2    	LDA #$C2       ; Bank: C2
C3/CA32:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/CA36:	A980    	LDA #$80       ; X: 128
C3/CA38:	9FCA337E	STA $7E33CA,X  ; Set shadow's
C3/CA3C:	A980    	LDA #$80       ; Y: 128
C3/CA3E:	9F4A347E	STA $7E344A,X  ; Set shadow's
C3/CA42:	2073D1  	JSR $D173      ; Load sea colors
C3/CA45:	20AFD9  	JSR $D9AF      ; Build text OAM
C3/CA48:	A400    	LDY $00        ; Scene timer: 0
C3/CA4A:	84CF    	STY $CF        ; Set for text
C3/CA4C:	A902    	LDA #$02       ; Min slot: 16
C3/CA4E:	A049D8  	LDY #$D849     ; C3/D849
C3/CA51:	207311  	JSR $1173      ; Queue credits
C3/CA54:	A0368B  	LDY #$8B36     ; Anim ptr LBs
C3/CA57:	A9C2    	LDA #$C2       ; Anim ptr HB
C3/CA59:	2025D2  	JSR $D225      ; Queue sea anim
C3/CA5C:	A903    	LDA #$03       ; Min slot: 24
C3/CA5E:	A0A2CA  	LDY #$CAA2     ; C3/CAA2
C3/CA61:	207311  	JSR $1173      ; Set to pan sky
C3/CA64:	20A0D2  	JSR $D2A0      ; Queue M7 handler
C3/CA67:	E626    	INC $26        ; Next: Late bird
C3/CA69:	A0B004  	LDY #$04B0     ; Frames: 1200
C3/CA6C:	8420    	STY $20        ; Set bird's delay
C3/CA6E:	4C6CC6  	JMP $C66C      ; Queue fade-in

Load cloudy sky graphics data, exclude sky from Mode 7
C3/CA71:	20E6D3  	JSR $D3E6      ; Reset M7 vars
C3/CA74:	20D3D4  	JSR $D4D3      ; Load GFX, map
C3/CA77:	204BD3  	JSR $D34B      ; Set up M7 HDMA
C3/CA7A:	205CD1  	JSR $D15C      ; Make text black
C3/CA7D:	4C80CA  	JMP $CA80      ; ...
C3/CA80:	A9C2    	LDA #$C2       ; Source HB
C3/CA82:	A04930  	LDY #$3049     ; To BG pal 0
C3/CA85:	A23C95  	LDX #$953C     ; Source LBs
C3/CA88:	208E0F  	JSR $0F8E      ; Load sky colors
C3/CA8B:	60      	RTS

11: Show swooping bird
C3/CA8C:	A420    	LDY $20        ; Delay expired?
C3/CA8E:	D011    	BNE $CAA1      ; Exit if not
C3/CA90:	A903    	LDA #$03       ; C3/C8A6
C3/CA92:	8526    	STA $26        ; Next: Fade-out
C3/CA94:	A00807  	LDY #$0708     ; Frames: 1800
C3/CA97:	8420    	STY $20        ; Set fade delay
C3/CA99:	A901    	LDA #$01       ; Min slot: 8
C3/CA9B:	A079CC  	LDY #$CC79     ; C3/CC79
C3/CA9E:	207311  	JSR $1173      ; Queue bird OAM
C3/CAA1:	60      	RTS

Scroll sky eastward
C3/CAA2:	A523    	LDA $23        ; NMI count
C3/CAA4:	2901    	AND #$01       ; Odd value?
C3/CAA6:	D006    	BNE $CAAE      ; Exit if so
C3/CAA8:	C220    	REP #$20       ; 16-bit A
C3/CAAA:	C639    	DEC $39        ; BG2 camera -1
C3/CAAC:	E220    	SEP #$20       ; 8-bit A
C3/CAAE:	38      	SEC            ; Set to requeue
C3/CAAF:	60      	RTS

Scroll sky westward
C3/CAB0:	A523    	LDA $23        ; NMI count
C3/CAB2:	2901    	AND #$01       ; Odd value?
C3/CAB4:	D006    	BNE $CABC      ; Exit if so
C3/CAB6:	C220    	REP #$20       ; 16-bit A
C3/CAB8:	E639    	INC $39        ; BG2 camera +1
C3/CABA:	E220    	SEP #$20       ; 8-bit A
C3/CABC:	38      	SEC            ; Set to requeue
C3/CABD:	60      	RTS

12-13: Return to event script after delay (unused variant)
C3/CABE:	A420    	LDY $20        ; Delay expired?
C3/CAC0:	D004    	BNE $CAC6      ; Exit if not
C3/CAC2:	A9FF    	LDA #$FF       ; Null value
C3/CAC4:	8526    	STA $26        ; Next: Exit
C3/CAC6:	60      	RTS

Create birds for boat scene
C3/CAC7:	A600    	LDX $00        ; ROM index: 0
C3/CAC9:	DA      	PHX            ; Save ROM index
C3/CACA:	205FCB  	JSR $CB5F      ; Queue anim fn
C3/CACD:	9B      	TXY            ; Queue index
C3/CACE:	FA      	PLX            ; ROM index
C3/CACF:	8B      	PHB            ; Save DB
C3/CAD0:	A97E    	LDA #$7E       ; Bank: 7E
C3/CAD2:	48      	PHA            ; Put on stack
C3/CAD3:	AB      	PLB            ; Set DB to 7E
C3/CAD4:	C220    	REP #$20       ; 16-bit A
C3/CAD6:	BFB5F7CF	LDA $CFF7B5,X  ; Anim table ptr
C3/CADA:	E8      	INX            ; ROM index +1
C3/CADB:	E8      	INX            ; ROM index +1
C3/CADC:	99C932  	STA $32C9,Y    ; Set bird's
C3/CADF:	E220    	SEP #$20       ; 8-bit A
C3/CAE1:	BFB5F7CF	LDA $CFF7B5,X  ; Base X / 2
C3/CAE5:	E8      	INX            ; ROM index +1
C3/CAE6:	99CA34  	STA $34CA,Y    ; Set bird's
C3/CAE9:	BFB5F7CF	LDA $CFF7B5,X  ; Base Y
C3/CAED:	E8      	INX            ; ROM index +1
C3/CAEE:	994A34  	STA $344A,Y    ; Set bird's
C3/CAF1:	A901    	LDA #$01       ; Pans with BG1
C3/CAF3:	994A36  	STA $364A,Y    ; Set OBJ flags
C3/CAF6:	AB      	PLB            ; Restore DB
C3/CAF7:	E01800  	CPX #$0018     ; Done 6 birds?
C3/CAFA:	D0CD    	BNE $CAC9      ; Loop if not
C3/CAFC:	60      	RTS

Create oscillating birds around skimming airship
C3/CAFD:	A600    	LDX $00        ; ROM index: 0
C3/CAFF:	DA      	PHX            ; Save ROM index
C3/CB00:	205FCB  	JSR $CB5F      ; Queue anim fn
C3/CB03:	9B      	TXY            ; Queue index
C3/CB04:	FA      	PLX            ; ROM index
C3/CB05:	8B      	PHB            ; Save DB
C3/CB06:	A97E    	LDA #$7E       ; Bank: 7E
C3/CB08:	48      	PHA            ; Put on stack
C3/CB09:	AB      	PLB            ; Set DB to 7E
C3/CB0A:	C220    	REP #$20       ; 16-bit A
C3/CB0C:	BFCDF7CF	LDA $CFF7CD,X  ; Anim table ptr
C3/CB10:	E8      	INX            ; ROM index +1
C3/CB11:	E8      	INX            ; ROM index +1
C3/CB12:	99C932  	STA $32C9,Y    ; Set bird's
C3/CB15:	E220    	SEP #$20       ; 8-bit A
C3/CB17:	BFCDF7CF	LDA $CFF7CD,X  ; Base X / 2
C3/CB1B:	E8      	INX            ; ROM index +1
C3/CB1C:	99CA34  	STA $34CA,Y    ; Set bird's
C3/CB1F:	BFCDF7CF	LDA $CFF7CD,X  ; Base Y
C3/CB23:	E8      	INX            ; ROM index +1
C3/CB24:	994A34  	STA $344A,Y    ; Set bird's
C3/CB27:	AB      	PLB            ; Restore DB
C3/CB28:	E01800  	CPX #$0018     ; Done 6 birds?
C3/CB2B:	D0D2    	BNE $CAFF      ; Loop if not
C3/CB2D:	60      	RTS

Create birds above grassfield
C3/CB2E:	A600    	LDX $00        ; ROM index: 0
C3/CB30:	DA      	PHX            ; Save ROM index
C3/CB31:	205FCB  	JSR $CB5F      ; Queue anim fn
C3/CB34:	9B      	TXY            ; Queue index
C3/CB35:	FA      	PLX            ; ROM index
C3/CB36:	8B      	PHB            ; Save DB
C3/CB37:	A97E    	LDA #$7E       ; Bank: 7E
C3/CB39:	48      	PHA            ; Put on stack
C3/CB3A:	AB      	PLB            ; Set DB to 7E
C3/CB3B:	C220    	REP #$20       ; 16-bit A
C3/CB3D:	BFE5F7CF	LDA $CFF7E5,X  ; Anim table ptr
C3/CB41:	E8      	INX            ; ROM index +1
C3/CB42:	E8      	INX            ; ROM index +1
C3/CB43:	99C932  	STA $32C9,Y    ; Set bird's
C3/CB46:	E220    	SEP #$20       ; 8-bit A
C3/CB48:	BFE5F7CF	LDA $CFF7E5,X  ; Base X / 2
C3/CB4C:	E8      	INX            ; ROM index +1
C3/CB4D:	99CA34  	STA $34CA,Y    ; Set bird's
C3/CB50:	BFE5F7CF	LDA $CFF7E5,X  ; Base Y
C3/CB54:	E8      	INX            ; ROM index +1
C3/CB55:	994A34  	STA $344A,Y    ; Set bird's
C3/CB58:	AB      	PLB            ; Restore DB
C3/CB59:	E01800  	CPX #$0018     ; Done 6 birds?
C3/CB5C:	D0D2    	BNE $CB30      ; Loop if not
C3/CB5E:	60      	RTS

Queue oscillating bird
C3/CB5F:	A902    	LDA #$02       ; Min slot: 16
C3/CB61:	A068CB  	LDY #$CB68     ; C3/CB68
C3/CB64:	207311  	JSR $1173      ; Queue anim fn
C3/CB67:	60      	RTS

Animate oscillating bird
C3/CB68:	AA      	TAX            ; Index mode
C3/CB69:	7C6CCB  	JMP ($CB6C,X)  ; Handle mode

Jump table for the above
C3/CB6C:	70CB    	; Initialize data
C3/CB6E:	87CB    	; Sustain sprite

Mode 0: Initialize data
C3/CB70:	A62D    	LDX $2D        ; Queue index
C3/CB72:	FE4936  	INC $3649,X    ; Mode +1
C3/CB75:	9E4A33  	STZ $334A,X    ; X-Mod index HB
C3/CB78:	BF68CBC3	LDA $C3CB68,X  ; X-Mod index LB
C3/CB7C:	9D4933  	STA $3349,X    ; Set bird's
C3/CB7F:	A9CF    	LDA #$CF       ; Bank: CF
C3/CB81:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/CB84:	200612  	JSR $1206      ; Set pose timer

Mode 1: Sustain sprite
C3/CB87:	A62D    	LDX $2D        ; Queue index
C3/CB89:	2094CB  	JSR $CB94      ; Init X position
C3/CB8C:	FE4933  	INC $3349,X    ; X-Mod index +1
C3/CB8F:	20C0DE  	JSR $DEC0      ; Scroll & OAM
C3/CB92:	38      	SEC            ; Set to requeue
C3/CB93:	60      	RTS

Update bird's back-and-forth motion (range: -8 to +7)
C3/CB94:	C220    	REP #$20       ; 16-bit A
C3/CB96:	BD4933  	LDA $3349,X    ; X-Mod index
C3/CB99:	2076DE  	JSR $DE76      ; Fract X mod
C3/CB9C:	85EB    	STA $EB        ; Set original
C3/CB9E:	85E0    	STA $E0        ; Set current
C3/CBA0:	A5E0    	LDA $E0        ; Shift right?
C3/CBA2:	1004    	BPL $CBA8      ; Branch if so
C3/CBA4:	49FFFF  	EOR #$FFFF     ; Invert value
C3/CBA7:	1A      	INC A          ; Add 1
C3/CBA8:	85E0    	STA $E0        ; Save changes
C3/CBAA:	A5EB    	LDA $EB        ; Shift right?
C3/CBAC:	1009    	BPL $CBB7      ; Branch if so
C3/CBAE:	2031CC  	JSR $CC31      ; Modifier / 16
C3/CBB1:	49FFFF  	EOR #$FFFF     ; Invert value
C3/CBB4:	1A      	INC A          ; Add 1
C3/CBB5:	8003    	BRA $CBBA      ; Skip a line
C3/CBB7:	2031CC  	JSR $CC31      ; Modifier / 16
C3/CBBA:	A62D    	LDX $2D        ; Queue index
C3/CBBC:	18      	CLC            ; Prepare ADC
C3/CBBD:	7DC934  	ADC $34C9,X    ; Add base X/2
C3/CBC0:	9DC933  	STA $33C9,X    ; Init bird's X
C3/CBC3:	E220    	SEP #$20       ; 8-bit A
C3/CBC5:	60      	RTS

Animate skimming airship
C3/CBC6:	AA      	TAX            ; Index mode
C3/CBC7:	7CCACB  	JMP ($CBCA,X)  ; Handle mode

Jump table
C3/CBCA:	CECB    	; Initialize data
C3/CBCC:	E6CB    	; Sustain sprite

Mode 0: Initialize data
C3/CBCE:	A62D    	LDX $2D        ; Queue index
C3/CBD0:	FE4936  	INC $3649,X    ; Mode +1
C3/CBD3:	9E4A33  	STZ $334A,X    ; Anim timer HB
C3/CBD6:	9E4933  	STZ $3349,X    ; Anim timer LB
C3/CBD9:	A978    	LDA #$78       ; X: 120
C3/CBDB:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/CBDE:	A920    	LDA #$20       ; Base Y/2: 32
C3/CBE0:	9D4A35  	STA $354A,X    ; Set sprite's
C3/CBE3:	200612  	JSR $1206      ; Set pose timer

Mode 1: Sustain sprite
C3/CBE6:	A62D    	LDX $2D        ; Queue index
C3/CBE8:	20FFCB  	JSR $CBFF      ; Init Y position
C3/CBEB:	A62D    	LDX $2D        ; Queue index
C3/CBED:	FE4933  	INC $3349,X    ; Anim timer +1
C3/CBF0:	BD4933  	LDA $3349,X    ; Anim timer
C3/CBF3:	C938    	CMP #$38       ; Within 56-255?
C3/CBF5:	B003    	BCS $CBFA      ; Branch if so
C3/CBF7:	2038CC  	JSR $CC38      ; Create spray
C3/CBFA:	20C0DE  	JSR $DEC0      ; Scroll & OAM
C3/CBFD:	38      	SEC            ; Set to requeue
C3/CBFE:	60      	RTS

Update airship's up-and-down motion (range: -8 to +7)
C3/CBFF:	C220    	REP #$20       ; 16-bit A
C3/CC01:	BD4933  	LDA $3349,X    ; Anim timer
C3/CC04:	207ADE  	JSR $DE7A      ; Fract Y mod
C3/CC07:	85EB    	STA $EB        ; Set original
C3/CC09:	85E0    	STA $E0        ; Set current
C3/CC0B:	A5E0    	LDA $E0        ; Shift down?
C3/CC0D:	1004    	BPL $CC13      ; Branch if so
C3/CC0F:	49FFFF  	EOR #$FFFF     ; Invert value
C3/CC12:	1A      	INC A          ; Add 1
C3/CC13:	85E0    	STA $E0        ; Save changes
C3/CC15:	A5EB    	LDA $EB        ; Shift down?
C3/CC17:	1009    	BPL $CC22      ; Branch if so
C3/CC19:	2031CC  	JSR $CC31      ; Modifier / 16
C3/CC1C:	49FFFF  	EOR #$FFFF     ; Invert value
C3/CC1F:	1A      	INC A          ; Add 1
C3/CC20:	8003    	BRA $CC25      ; Skip a line
C3/CC22:	2031CC  	JSR $CC31      ; Modifier / 16
C3/CC25:	A62D    	LDX $2D        ; Queue index
C3/CC27:	18      	CLC            ; Prepare ADC
C3/CC28:	7D4935  	ADC $3549,X    ; Add base Y
C3/CC2B:	9D4934  	STA $3449,X    ; Init ship's Y
C3/CC2E:	E220    	SEP #$20       ; 8-bit A
C3/CC30:	60      	RTS

Divide sprite's position modifier by 16
C3/CC31:	A5E0    	LDA $E0        ; Y modifier
C3/CC33:	4A      	LSR A          ; 2
C3/CC34:	4A      	LSR A          ; 4
C3/CC35:	4A      	LSR A          ; 8
C3/CC36:	4A      	LSR A          ; 16
C3/CC37:	60      	RTS

Create water spray
C3/CC38:	A523    	LDA $23        ; NMI count
C3/CC3A:	2903    	AND #$03       ; Now 0-3
C3/CC3C:	D03A    	BNE $CC78      ; Exit if 1-3
C3/CC3E:	8B      	PHB            ; Save DB
C3/CC3F:	A900    	LDA #$00       ; ...
C3/CC41:	48      	PHA            ; ...
C3/CC42:	AB      	PLB            ; ...
C3/CC43:	2046C8  	JSR $C846      ; Queue anim fn
C3/CC46:	C220    	REP #$20       ; 16-bit A
C3/CC48:	A90B8D  	LDA #$8D0B     ; Anim table ptr
C3/CC4B:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/CC4F:	A90001  	LDA #$0100     ; H-Spd: +1 px
C3/CC52:	9FC9347E	STA $7E34C9,X  ; Set sprite's
C3/CC56:	A980FF  	LDA #$FF80     ; V-Spd: -0.5 px
C3/CC59:	9F49357E	STA $7E3549,X  ; Set sprite's
C3/CC5D:	E220    	SEP #$20       ; 8-bit A
C3/CC5F:	A918    	LDA #$18       ; Frames: 24
C3/CC61:	9F49337E	STA $7E3349,X  ; Set hide delay
C3/CC65:	A9C2    	LDA #$C2       ; Bank: C2
C3/CC67:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/CC6B:	A97E    	LDA #$7E       ; X: 126
C3/CC6D:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/CC71:	A97C    	LDA #$7C       ; Y: 124
C3/CC73:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/CC77:	AB      	PLB            ; Restore DB
C3/CC78:	60      	RTS

Animate swooping bird
C3/CC79:	AA      	TAX            ; Index mode
C3/CC7A:	7C7DCC  	JMP ($CC7D,X)  ; Handle mode

Jump table for the above
C3/CC7D:	81CC    	; Initialize sprite
C3/CC7F:	A8CC    	; Sustain sprite

Mode 0: Initialize sprite
C3/CC81:	A62D    	LDX $2D        ; Queue index
C3/CC83:	FE4936  	INC $3649,X    ; Mode +1
C3/CC86:	A9CF    	LDA #$CF       ; Anim ptr HB
C3/CC88:	9DCA35  	STA $35CA,X    ; Set sprite's
C3/CC8B:	C220    	REP #$20       ; 16-bit A
C3/CC8D:	A972F7  	LDA #$F772     ; Anim ptr LBs
C3/CC90:	9DC932  	STA $32C9,X    ; Set sprite's
C3/CC93:	A91000  	LDA #$0010     ; Pos index: 16
C3/CC96:	9D4933  	STA $3349,X    ; Set sprite's
C3/CC99:	E220    	SEP #$20       ; 8-bit A
C3/CC9B:	A900    	LDA #$00       ; Base X HB: 0
C3/CC9D:	9DCA34  	STA $34CA,X    ; Set sprite's
C3/CCA0:	A900    	LDA #$00       ; Base Y HB: 0
C3/CCA2:	9D4A35  	STA $354A,X    ; Set sprite's
C3/CCA5:	200612  	JSR $1206      ; Set pose timer

Mode 1: Sustain sprite
C3/CCA8:	A62D    	LDX $2D        ; Queue index
C3/CCAA:	BDCA33  	LDA $33CA,X    ; X position
C3/CCAD:	C908    	CMP #$08       ; Under 8?
C3/CCAF:	B002    	BCS $CCB3      ; Display if not
C3/CCB1:	18      	CLC            ; Set to dequeue
C3/CCB2:	60      	RTS

Fork: Set X position
C3/CCB3:	C220    	REP #$20       ; 16-bit A
C3/CCB5:	BD4933  	LDA $3349,X    ; Position index
C3/CCB8:	2076DE  	JSR $DE76      ; Fractional X
C3/CCBB:	85EB    	STA $EB        ; ...
C3/CCBD:	85E0    	STA $E0        ; ...
C3/CCBF:	A5E0    	LDA $E0        ; ...
C3/CCC1:	1004    	BPL $CCC7      ; ...
C3/CCC3:	49FFFF  	EOR #$FFFF     ; ...
C3/CCC6:	1A      	INC A          ; ...
C3/CCC7:	85E0    	STA $E0        ; ...
C3/CCC9:	A5EB    	LDA $EB        ; ...
C3/CCCB:	1009    	BPL $CCD6      ; ...
C3/CCCD:	A5E0    	LDA $E0        ; ...
C3/CCCF:	0A      	ASL A          ; ...
C3/CCD0:	49FFFF  	EOR #$FFFF     ; ...
C3/CCD3:	1A      	INC A          ; ...
C3/CCD4:	8003    	BRA $CCD9      ; ...
C3/CCD6:	A5E0    	LDA $E0        ; ...
C3/CCD8:	0A      	ASL A          ; Double it
C3/CCD9:	A62D    	LDX $2D        ; Queue index
C3/CCDB:	18      	CLC            ; Prepare ADC
C3/CCDC:	7DC934  	ADC $34C9,X    ; Add base X
C3/CCDF:	9DC933  	STA $33C9,X    ; Set bird's X

Fork: Set Y position
C3/CCE2:	BD4933  	LDA $3349,X    ; Position index
C3/CCE5:	207ADE  	JSR $DE7A      ; Fractional Y
C3/CCE8:	85EB    	STA $EB        ; ...
C3/CCEA:	85E0    	STA $E0        ; ...
C3/CCEC:	A5E0    	LDA $E0        ; ...
C3/CCEE:	1004    	BPL $CCF4      ; ...
C3/CCF0:	49FFFF  	EOR #$FFFF     ; ...
C3/CCF3:	1A      	INC A          ; ...
C3/CCF4:	85E0    	STA $E0        ; ...
C3/CCF6:	A5EB    	LDA $EB        ; ...
C3/CCF8:	1008    	BPL $CD02      ; ...
C3/CCFA:	A5E0    	LDA $E0        ; ...
C3/CCFC:	49FFFF  	EOR #$FFFF     ; ...
C3/CCFF:	1A      	INC A          ; ...
C3/CD00:	8002    	BRA $CD04      ; ...
C3/CD02:	A5E0    	LDA $E0        ; ...
C3/CD04:	A62D    	LDX $2D        ; Queue index
C3/CD06:	18      	CLC            ; Prepare ADC
C3/CD07:	7D4935  	ADC $3549,X    ; Add base Y
C3/CD0A:	9D4934  	STA $3449,X    ; Set bird's Y
C3/CD0D:	FE4933  	INC $3349,X    ; Pos index +1
C3/CD10:	E220    	SEP #$20       ; ...
C3/CD12:	202112  	JSR $1221      ; Define OAM
C3/CD15:	38      	SEC            ; Set to requeue
C3/CD16:	60      	RTS

14: Start frontview airship scene
C3/CD17:	22D7CED4	JSL $D4CED7    ; Init registers
C3/CD1B:	209FC5  	JSR $C59F      ; Color math: BG1
C3/CD1E:	2273D5C3	JSL $C3D573    ; Upload GFX, map
C3/CD22:	2071CA  	JSR $CA71      ; Get sky; init M7
C3/CD25:	208CD3  	JSR $D38C      ; Queue gradient
C3/CD28:	206FD3  	JSR $D36F      ; HDMA: Color math
C3/CD2B:	2051C7  	JSR $C751      ; Load OBJ colors
C3/CD2E:	A02800  	LDY #$0028     ; Y: 40
C3/CD31:	843B    	STY $3B        ; Set BG2 Y-Pos
C3/CD33:	A0CDFF  	LDY #$FFCD     ; Mod index: 205
C3/CD36:	84C3    	STY $C3        ; Set matrices'
C3/CD38:	A00B03  	LDY #$030B     ; Vertical angle
C3/CD3B:	84C7    	STY $C7        ; Set for field
C3/CD3D:	A000F0  	LDY #$F000     ; Base divisor
C3/CD40:	84C5    	STY $C5        ; Set matrices'
C3/CD42:	20D2DD  	JSR $DDD2      ; Make matrix tbl
C3/CD45:	2073D1  	JSR $D173      ; Load BG1 colors
C3/CD48:	202ECB  	JSR $CB2E      ; Create birds
C3/CD4B:	20DCCF  	JSR $CFDC      ; Queue airship
C3/CD4E:	C220    	REP #$20       ; 16-bit A
C3/CD50:	A9258C  	LDA #$8C25     ; Anim table ptr
C3/CD53:	9FC9327E	STA $7E32C9,X  ; Set airship's
C3/CD57:	E220    	SEP #$20       ; 8-bit A
C3/CD59:	A9C2    	LDA #$C2       ; Bank: C2
C3/CD5B:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/CD5F:	A978    	LDA #$78       ; X: 120
C3/CD61:	9FCA337E	STA $7E33CA,X  ; Set airship's
C3/CD65:	A958    	LDA #$58       ; Base Y: 88
C3/CD67:	9F4A357E	STA $7E354A,X  ; Set airship's
C3/CD6B:	A0398B  	LDY #$8B39     ; Anim ptr LBs
C3/CD6E:	A9C2    	LDA #$C2       ; Anim ptr HB
C3/CD70:	2025D2  	JSR $D225      ; Queue field anim
C3/CD73:	20C5D9  	JSR $D9C5      ; Build text OAM
C3/CD76:	A400    	LDY $00        ; Scene timer: 0
C3/CD78:	84CF    	STY $CF        ; Set for text
C3/CD7A:	A902    	LDA #$02       ; Min slot: 16
C3/CD7C:	A097D8  	LDY #$D897     ; C3/D897
C3/CD7F:	207311  	JSR $1173      ; Queue credits
C3/CD82:	A903    	LDA #$03       ; Min slot: 24
C3/CD84:	A0B0CA  	LDY #$CAB0     ; C3/CAB0
C3/CD87:	207311  	JSR $1173      ; Set to pan sky
C3/CD8A:	20A0D2  	JSR $D2A0      ; Queue M7 handler
C3/CD8D:	E626    	INC $26        ; Next: Late flock
C3/CD8F:	A0B004  	LDY #$04B0     ; Frames: 1200
C3/CD92:	8420    	STY $20        ; Set flock delay
C3/CD94:	4C6CC6  	JMP $C66C      ; Queue fade-in

Queue bird from late flock
C3/CD97:	A902    	LDA #$02       ; Min slot: 16
C3/CD99:	A0EACD  	LDY #$CDEA     ; C3/CDEA
C3/CD9C:	207311  	JSR $1173      ; Queue anim fn
C3/CD9F:	60      	RTS

15: Show late bird flock
C3/CDA0:	A420    	LDY $20        ; Delay expired?
C3/CDA2:	D045    	BNE $CDE9      ; Exit if not
C3/CDA4:	A903    	LDA #$03       ; C3/C8A6
C3/CDA6:	8526    	STA $26        ; Next: Fade-out
C3/CDA8:	A00807  	LDY #$0708     ; Frames: 1800
C3/CDAB:	8420    	STY $20        ; Set fade delay
C3/CDAD:	2097CD  	JSR $CD97      ; Queue bird 1
C3/CDB0:	A900    	LDA #$00       ; X: 0
C3/CDB2:	9FCA337E	STA $7E33CA,X  ; Set for bird 1
C3/CDB6:	A950    	LDA #$50       ; Y: 80
C3/CDB8:	9F4A347E	STA $7E344A,X  ; Set for bird 1
C3/CDBC:	2097CD  	JSR $CD97      ; Queue bird 2
C3/CDBF:	A918    	LDA #$18       ; X: 24
C3/CDC1:	9FCA337E	STA $7E33CA,X  ; Set for bird 2
C3/CDC5:	A940    	LDA #$40       ; Y: 64
C3/CDC7:	9F4A347E	STA $7E344A,X  ; Set for bird 2
C3/CDCB:	2097CD  	JSR $CD97      ; Queue bird 3
C3/CDCE:	A940    	LDA #$40       ; X: 64
C3/CDD0:	9FCA337E	STA $7E33CA,X  ; Set for bird 3
C3/CDD4:	A968    	LDA #$68       ; Y: 104
C3/CDD6:	9F4A347E	STA $7E344A,X  ; Set for bird 3
C3/CDDA:	2097CD  	JSR $CD97      ; Queue bird 4
C3/CDDD:	A910    	LDA #$10       ; X: 16
C3/CDDF:	9FCA337E	STA $7E33CA,X  ; Set for bird 4
C3/CDE3:	A948    	LDA #$48       ; Y: 72
C3/CDE5:	9F4A347E	STA $7E344A,X  ; Set for bird 4
C3/CDE9:	60      	RTS

Animate bird from late flock
C3/CDEA:	AA      	TAX            ; Index mode
C3/CDEB:	7CEECD  	JMP ($CDEE,X)  ; Handle mode

Jump table for the above
C3/CDEE:	00CE    	; Initialize data
C3/CDF0:	1FCE    	; Unused
C3/CDF2:	1FCE    	; Head E after delay
C3/CDF4:	1FCE    	; Head SE after delay
C3/CDF6:	1FCE    	; Head SSE after delay
C3/CDF8:	1FCE    	; Head SSW after delay
C3/CDFA:	1FCE    	; Head SW after delay
C3/CDFC:	1FCE    	; Head SW x2 after delay
C3/CDFE:	33CE    	; Delete if at left edge

Mode 0: Initialize data
C3/CE00:	A62D    	LDX $2D        ; Queue index
C3/CE02:	FE4936  	INC $3649,X    ; Mode +1
C3/CE05:	C220    	REP #$20       ; 16-bit A
C3/CE07:	A94FF7  	LDA #$F74F     ; Anim table ptr
C3/CE0A:	9DC932  	STA $32C9,X    ; Set bird's
C3/CE0D:	E220    	SEP #$20       ; 8-bit A
C3/CE0F:	A9CF    	LDA #$CF       ; Bank: CF
C3/CE11:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/CE14:	9EC935  	STZ $35C9,X    ; Course: NE
C3/CE17:	2043CE  	JSR $CE43      ; Define path
C3/CE1A:	A62D    	LDX $2D        ; Queue index
C3/CE1C:	200612  	JSR $1206      ; Set pose timer

Modes 1-7: Alter course
C3/CE1F:	A62D    	LDX $2D        ; Queue index
C3/CE21:	BC4933  	LDY $3349,X    ; Mode expired?
C3/CE24:	D005    	BNE $CE2B      ; Branch if not
C3/CE26:	2043CE  	JSR $CE43      ; Alter path
C3/CE29:	A62D    	LDX $2D        ; Queue index
C3/CE2B:	20E5CF  	JSR $CFE5      ; Mode timer -1
C3/CE2E:	20C0DE  	JSR $DEC0      ; Scroll & OAM
C3/CE31:	38      	SEC            ; Set to requeue
C3/CE32:	60      	RTS

Mode 8: Delete if set to wrap horizontally
C3/CE33:	20C0DE  	JSR $DEC0      ; Scroll & OAM
C3/CE36:	A62D    	LDX $2D        ; Queue index
C3/CE38:	BDCA33  	LDA $33CA,X    ; Bird's X
C3/CE3B:	C901    	CMP #$01       ; Zero?
C3/CE3D:	B002    	BCS $CE41      ; Maintain if not
C3/CE3F:	18      	CLC            ; Set to dequeue
C3/CE40:	60      	RTS            ; Exit
C3/CE41:	38      	SEC            ; Set to requeue
C3/CE42:	60      	RTS

Alter course of bird from late flock
C3/CE43:	A42D    	LDY $2D        ; Queue index
C3/CE45:	BB      	TYX            ; Put it in X
C3/CE46:	7B      	TDC            ; Clear A
C3/CE47:	B9C935  	LDA $35C9,Y    ; Path index
C3/CE4A:	FEC935  	INC $35C9,X    ; Path Index +1
C3/CE4D:	FE4936  	INC $3649,X    ; Mode +1
C3/CE50:	0A      	ASL A          ; Index x2
C3/CE51:	0A      	ASL A          ; Index x4
C3/CE52:	0A      	ASL A          ; Index x8
C3/CE53:	C220    	REP #$20       ; 16-bit A
C3/CE55:	AA      	TAX            ; Index it
C3/CE56:	BF6ECEC3	LDA $C3CE6E,X  ; H-Speed
C3/CE5A:	99C934  	STA $34C9,Y    ; Set bird's
C3/CE5D:	BF70CEC3	LDA $C3CE70,X  ; V-Speed
C3/CE61:	994935  	STA $3549,Y    ; Set bird's
C3/CE64:	BF72CEC3	LDA $C3CE72,X  ; Path timer
C3/CE68:	994933  	STA $3349,Y    ; Set bird's
C3/CE6B:	E220    	SEP #$20       ; 8-bit A
C3/CE6D:	60      	RTS

Late bird flock's course
C3/CE6E:	2000    	; H-Speed: +0.125 px
C3/CE70:	F0FF    	; V-Speed: -0.0625 px
C3/CE72:	8403    	; Frames: 900
C3/CE74:	0000    	; ...
C3/CE76:	2000    	; H-Speed: +0.125 px
C3/CE78:	0000    	; V-Speed: 0
C3/CE7A:	3C00    	; Frames: 60
C3/CE7C:	0000    	; ...
C3/CE7E:	2000    	; H-Speed: +0.125 px
C3/CE80:	2000    	; V-Speed: +0.125 px
C3/CE82:	3C00    	; Frames: 60
C3/CE84:	0000    	; ...
C3/CE86:	1000    	; H-Speed: +0.0625 px
C3/CE88:	4000    	; V-Speed: +0.25 px
C3/CE8A:	3C00    	; Frames: 60
C3/CE8C:	0000    	; ...
C3/CE8E:	E0FF    	; H-Speed: -0.125 px
C3/CE90:	4000    	; V-Speed: +0.25 px
C3/CE92:	3C00    	; Frames: 60
C3/CE94:	0000    	; ...
C3/CE96:	C0FF    	; H-Speed: -0.25 px
C3/CE98:	4000    	; V-Speed: +0.25 px
C3/CE9A:	B400    	; Frames: 180
C3/CE9C:	0000    	; ...
C3/CE9E:	80FF    	; H-Speed: -0.5 px
C3/CEA0:	8000    	; V-Speed: +0.5 px
C3/CEA2:	B400    	; Frames: 180
C3/CEA4:	0000    	; ...

18: Start aerial-view plains scene
C3/CEA6:	22D7CED4	JSL $D4CED7    ; Init registers
C3/CEAA:	209FC5  	JSR $C59F      ; Color math: BG1
C3/CEAD:	2273D5C3	JSL $C3D573    ; Upload GFX, map
C3/CEB1:	20E6D3  	JSR $D3E6      ; Reset M7 vars
C3/CEB4:	228FCBD4	JSL $D4CB8F    ; HDMA: Matrices
C3/CEB8:	A00018  	LDY #$1800     ; Base divisor
C3/CEBB:	84C5    	STY $C5        ; Set matrices'
C3/CEBD:	20D2DD  	JSR $DDD2      ; Make matrix tbl
C3/CEC0:	205CD1  	JSR $D15C      ; Make text black
C3/CEC3:	2073D1  	JSR $D173      ; Load BG1 colors
C3/CEC6:	A0FA8A  	LDY #$8AFA     ; Anim ptr LBs
C3/CEC9:	A9C2    	LDA #$C2       ; Anim ptr HB
C3/CECB:	2025D2  	JSR $D225      ; Queue field anim
C3/CECE:	20DBD9  	JSR $D9DB      ; Build text OAM
C3/CED1:	A400    	LDY $00        ; Scene timer: 0
C3/CED3:	84CF    	STY $CF        ; Set for text
C3/CED5:	A902    	LDA #$02       ; Min slot: 16
C3/CED7:	A0E5D8  	LDY #$D8E5     ; C3/D8E5
C3/CEDA:	207311  	JSR $1173      ; Queue credits
C3/CEDD:	20A0D2  	JSR $D2A0      ; Queue M7 handler
C3/CEE0:	A903    	LDA #$03       ; C3/C8A6
C3/CEE2:	8526    	STA $26        ; Next: Fade-out
C3/CEE4:	A0100E  	LDY #$0E10     ; Frames: 3600
C3/CEE7:	8420    	STY $20        ; Set fade delay
C3/CEE9:	4C6CC6  	JMP $C66C      ; Queue fade-in

1C: Start rearview airship scene
C3/CEEC:	22D7CED4	JSL $D4CED7    ; Init registers
C3/CEF0:	2273D5C3	JSL $C3D573    ; Upload GFX, map
C3/CEF4:	2044D1  	JSR $D144      ; Upload balloon
C3/CEF7:	2071CA  	JSR $CA71      ; Get sky; init M7
C3/CEFA:	208CD3  	JSR $D38C      ; Queue gradient
C3/CEFD:	206FD3  	JSR $D36F      ; HDMA: Color math
C3/CF00:	A00001  	LDY #$0100     ; Base divisor
C3/CF03:	84C5    	STY $C5        ; Set matrices'
C3/CF05:	A0DC02  	LDY #$02DC     ; Vertical angle
C3/CF08:	84C7    	STY $C7        ; Set for field
C3/CF0A:	20D2DD  	JSR $DDD2      ; Make matrix tbl
C3/CF0D:	A01000  	LDY #$0010     ; Y: 16
C3/CF10:	843B    	STY $3B        ; Set BG2 Y-Pos
C3/CF12:	205CD1  	JSR $D15C      ; Make text black
C3/CF15:	2051C7  	JSR $C751      ; Load OBJ colors
C3/CF18:	2073D1  	JSR $D173      ; Load BG1 colors
C3/CF1B:	20E6D9  	JSR $D9E6      ; Build text OAM
C3/CF1E:	A400    	LDY $00        ; Scene timer: 0
C3/CF20:	84CF    	STY $CF        ; Set for text
C3/CF22:	A902    	LDA #$02       ; Min slot: 16
C3/CF24:	A033D9  	LDY #$D933     ; C3/D933
C3/CF27:	207311  	JSR $1173      ; Queue credits
C3/CF2A:	A900    	LDA #$00       ; Min slot: 0
C3/CF2C:	A09ACF  	LDY #$CF9A     ; C3/CF9A
C3/CF2F:	207311  	JSR $1173      ; Queue BG scroll
C3/CF32:	20B2CF  	JSR $CFB2      ; Queue SW rotor
C3/CF35:	A914    	LDA #$14       ; Y: 20
C3/CF37:	9F4A357E	STA $7E354A,X  ; Set SW rotor's
C3/CF3B:	A944    	LDA #$44       ; X: 68
C3/CF3D:	9FCA337E	STA $7E33CA,X  ; Set SW rotor's
C3/CF41:	20C7CF  	JSR $CFC7      ; Queue SE rotor
C3/CF44:	A914    	LDA #$14       ; Y: 20
C3/CF46:	9F4A357E	STA $7E354A,X  ; Set SE rotor's
C3/CF4A:	A9AC    	LDA #$AC       ; X: 172
C3/CF4C:	9FCA337E	STA $7E33CA,X  ; Set SE rotor's
C3/CF50:	20B2CF  	JSR $CFB2      ; Queue NW rotor
C3/CF53:	A9E8    	LDA #$E8       ; Y: 232
C3/CF55:	9F4A357E	STA $7E354A,X  ; Set NW rotor's
C3/CF59:	A960    	LDA #$60       ; X: 96
C3/CF5B:	9FCA337E	STA $7E33CA,X  ; Set NW rotor's
C3/CF5F:	20C7CF  	JSR $CFC7      ; Queue NE rotor
C3/CF62:	A9E8    	LDA #$E8       ; Y: 232
C3/CF64:	9F4A357E	STA $7E354A,X  ; Set NE rotor's
C3/CF68:	A990    	LDA #$90       ; X: 144
C3/CF6A:	9FCA337E	STA $7E33CA,X  ; Set NE rotor's
C3/CF6E:	20DCCF  	JSR $CFDC      ; Queue airship
C3/CF71:	C220    	REP #$20       ; 16-bit A
C3/CF73:	A9608C  	LDA #$8C60     ; Anim table ptr
C3/CF76:	9FC9327E	STA $7E32C9,X  ; Set airship's
C3/CF7A:	E220    	SEP #$20       ; 8-bit A
C3/CF7C:	A9C2    	LDA #$C2       ; Bank: C2
C3/CF7E:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/CF82:	A948    	LDA #$48       ; X: 72
C3/CF84:	9FCA337E	STA $7E33CA,X  ; Set airship's
C3/CF88:	A9F8    	LDA #$F8       ; Y: 248
C3/CF8A:	9F4A357E	STA $7E354A,X  ; Set airship's
C3/CF8E:	A903    	LDA #$03       ; C3/C8A6
C3/CF90:	8526    	STA $26        ; Next: Fade-out
C3/CF92:	A0AC08  	LDY #$08AC     ; Frames: 2220
C3/CF95:	8420    	STY $20        ; Set fade delay
C3/CF97:	4C6CC6  	JMP $C66C      ; Queue fade-in

Scroll field and sky for rearview airship scene
C3/CF9A:	A523    	LDA $23        ; NMI count
C3/CF9C:	297F    	AND #$7F       ; 0 or 128?
C3/CF9E:	D002    	BNE $CFA2      ; Branch if not
C3/CFA0:	E63B    	INC $3B        ; Shift sky up
C3/CFA2:	A523    	LDA $23        ; NMI count
C3/CFA4:	2901    	AND #$01       ; Odd value?
C3/CFA6:	D008    	BNE $CFB0      ; Exit if so
C3/CFA8:	C220    	REP #$20       ; 16-bit A
C3/CFAA:	C6B9    	DEC $B9        ; Center Y -1
C3/CFAC:	C637    	DEC $37        ; Move field down
C3/CFAE:	E220    	SEP #$20       ; 8-bit A
C3/CFB0:	38      	SEC            ; Set to requeue
C3/CFB1:	60      	RTS

Queue NW or SW airship rotor
C3/CFB2:	20DCCF  	JSR $CFDC      ; Queue anim fn
C3/CFB5:	A9C2    	LDA #$C2       ; Bank: C2
C3/CFB7:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/CFBB:	C220    	REP #$20       ; 16-bit A
C3/CFBD:	A93E8D  	LDA #$8D3E     ; Anim ptr LBs
C3/CFC0:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/CFC4:	E220    	SEP #$20       ; 8-bit A
C3/CFC6:	60      	RTS

Queue NE or SE airship rotor
C3/CFC7:	20DCCF  	JSR $CFDC      ; Queue anim fn
C3/CFCA:	A9C2    	LDA #$C2       ; Bank: C2
C3/CFCC:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/CFD0:	C220    	REP #$20       ; 16-bit A
C3/CFD2:	A9918D  	LDA #$8D91     ; Anim ptr LBs
C3/CFD5:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/CFD9:	E220    	SEP #$20       ; 8-bit A
C3/CFDB:	60      	RTS

Queue frontview or rearview airship or rotor
C3/CFDC:	A902    	LDA #$02       ; Min slot: 16
C3/CFDE:	A0F8CF  	LDY #$CFF8     ; C3/CFF8
C3/CFE1:	207311  	JSR $1173      ; Queue OAM fn
C3/CFE4:	60      	RTS

Decrease sprite's animation mode timer
C3/CFE5:	A62D    	LDX $2D        ; Queue index
C3/CFE7:	C220    	REP #$20       ; 16-bit A
C3/CFE9:	DE4933  	DEC $3349,X    ; Timer -1
C3/CFEC:	E220    	SEP #$20       ; 8-bit A
C3/CFEE:	60      	RTS

Define sprite's animation mode timer (unused)
C3/CFEF:	C220    	REP #$20       ; 16-bit A
C3/CFF1:	98      	TYA            ; Get timer
C3/CFF2:	9D4933  	STA $3349,X    ; Set timer
C3/CFF5:	E220    	SEP #$20       ; 8-bit A
C3/CFF7:	60      	RTS

Animate frontview or rearview airship or rotor
C3/CFF8:	AA      	TAX            ; Index mode
C3/CFF9:	7CFCCF  	JMP ($CFFC,X)  ; Handle mode

Jump table
C3/CFFC:	00D0    	; Initialize timers
C3/CFFE:	0BD0    	; Sustain sprite

Mode 0: Initialize timers
C3/D000:	A62D    	LDX $2D        ; Queue index
C3/D002:	FE4936  	INC $3649,X    ; Mode +1
C3/D005:	9E4933  	STZ $3349,X    ; Anim timer: 0
C3/D008:	200612  	JSR $1206      ; Set pose timer

Mode 1: Sustain sprite
C3/D00B:	A62D    	LDX $2D        ; Queue index
C3/D00D:	20FFCB  	JSR $CBFF      ; Set altitute
C3/D010:	FE4933  	INC $3349,X    ; Anim timer +1
C3/D013:	202112  	JSR $1221      ; Define OAM
C3/D016:	38      	SEC            ; Set to requeue
C3/D017:	60      	RTS

Load colors for blue sky and non-sprite airships
C3/D018:	A9C2    	LDA #$C2       ; Source HB
C3/D01A:	A04930  	LDY #$3049     ; To BG pal 0
C3/D01D:	A29C95  	LDX #$959C     ; Source LBs
C3/D020:	208E0F  	JSR $0F8E      ; Load fill color
C3/D023:	A9C2    	LDA #$C2       ; Source HB
C3/D025:	A06930  	LDY #$3069     ; To BG pal 1
C3/D028:	A29C95  	LDX #$959C     ; Source LBs
C3/D02B:	208E0F  	JSR $0F8E      ; Load the rest
C3/D02E:	60      	RTS

20: Start final airship scene
C3/D02F:	22D7CED4	JSL $D4CED7    ; Init registers
C3/D033:	209FC5  	JSR $C59F      ; Color math: BG1
C3/D036:	A980    	LDA #$80       ; Map wraps: No
C3/D038:	8D1A21  	STA $211A      ; Set M7 settings
C3/D03B:	200AD6  	JSR $D60A      ; Upload GFX, map
C3/D03E:	20E6D3  	JSR $D3E6      ; Reset M7 vars
C3/D041:	2255CED4	JSL $D4CE55    ; HDMA: MS desig
C3/D045:	A9C2    	LDA #$C2       ; Source HB
C3/D047:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/D04A:	A25497  	LDX #$9754     ; Source LBs
C3/D04D:	208E0F  	JSR $0F8E      ; No text...
C3/D050:	A9C2    	LDA #$C2       ; Source HB
C3/D052:	A0E931  	LDY #$31E9     ; To OBJ pal 5
C3/D055:	A24C97  	LDX #$974C     ; Source LBs
C3/D058:	208E0F  	JSR $0F8E      ; No text...
C3/D05B:	2073D1  	JSR $D173      ; No field...
C3/D05E:	2018D0  	JSR $D018      ; Load BG colors
C3/D061:	A00100  	LDY #$0001     ; Zoom-out: 1
C3/D064:	84BB    	STY $BB        ; Set matrix A
C3/D066:	84C1    	STY $C1        ; Set matrix D
C3/D068:	A00800  	LDY #$0008     ; X: 8
C3/D06B:	84B7    	STY $B7        ; Set center X
C3/D06D:	A01800  	LDY #$0018     ; Y: 24
C3/D070:	84B9    	STY $B9        ; Set center Y
C3/D072:	A0D8FF  	LDY #$FFD8     ; X: -40
C3/D075:	8435    	STY $35        ; Set BG1 X-Pos
C3/D077:	A0D0FF  	LDY #$FFD0     ; Y: -48
C3/D07A:	8437    	STY $37        ; Set BG1 Y-Pos
C3/D07C:	A900    	LDA #$00       ; Min slot: 0
C3/D07E:	A022D1  	LDY #$D122     ; C3/D122
C3/D081:	207311  	JSR $1173      ; Queue zoom-out
C3/D084:	E626    	INC $26        ; Next: C3/D096
C3/D086:	A09600  	LDY #$0096     ; Frames: 150
C3/D089:	8420    	STY $20        ; Set fade delay
C3/D08B:	A900    	LDA #$00       ; Min slot: 0
C3/D08D:	A0A8D0  	LDY #$D0A8     ; C3/D0A8
C3/D090:	207311  	JSR $1173      ; Queue rotor fn
C3/D093:	4C6CC6  	JMP $C66C      ; Queue fade-in

21: Fade final airship
C3/D096:	A420    	LDY $20        ; Delay expired?
C3/D098:	D00D    	BNE $D0A7      ; Exit if not
C3/D09A:	6426    	STZ $26        ; Next: Fade-out
C3/D09C:	A07800  	LDY #$0078     ; Frames: 120
C3/D09F:	8420    	STY $20        ; Set fade timer
C3/D0A1:	206BE1  	JSR $E16B      ; Fade BG pal 1+2
C3/D0A4:	2041E2  	JSR $E241      ; Fade BG pal 0
C3/D0A7:	60      	RTS

Animate final airship's rotors
C3/D0A8:	A523    	LDA $23        ; NMI count
C3/D0AA:	2901    	AND #$01       ; Even value?
C3/D0AC:	F011    	BEQ $D0BF      ; Branch if so
C3/D0AE:	A951    	LDA #$51       ; Tile: 81
C3/D0B0:	8F49987E	STA $7E9849    ; Set L-Rotor's
C3/D0B4:	A94F    	LDA #$4F       ; Tile: 79
C3/D0B6:	8F4A987E	STA $7E984A    ; Set R-Rotor's
C3/D0BA:	20D0D0  	JSR $D0D0      ; Queue upload
C3/D0BD:	38      	SEC            ; Set to requeue
C3/D0BE:	60      	RTS            ; Exit
C3/D0BF:	A959    	LDA #$59       ; Tile: 89
C3/D0C1:	8F49987E	STA $7E9849    ; Set L-Rotor's
C3/D0C5:	A95A    	LDA #$5A       ; Tile: 90
C3/D0C7:	8F4A987E	STA $7E984A    ; Set R-Rotor's
C3/D0CB:	20D0D0  	JSR $D0D0      ; Queue upload
C3/D0CE:	38      	SEC            ; Set to requeue
C3/D0CF:	60      	RTS

Set to refresh final airship's rotors
C3/D0D0:	A08302  	LDY #$0283     ; L-Rotor adr
C3/D0D3:	8414    	STY $14        ; Set VRAM ptr1
C3/D0D5:	A04998  	LDY #$9849     ; 7E/9849
C3/D0D8:	8416    	STY $16        ; Set src1 LBs
C3/D0DA:	A00602  	LDY #$0206     ; R-Rotor adr
C3/D0DD:	841B    	STY $1B        ; Set VRAM ptr2
C3/D0DF:	A04A98  	LDY #$984A     ; 7E/984A
C3/D0E2:	841D    	STY $1D        ; Set src2 LBs
C3/D0E4:	A97E    	LDA #$7E       ; Bank: 7E
C3/D0E6:	8518    	STA $18        ; Set src1 HB
C3/D0E8:	851F    	STA $1F        ; Set src2 HB
C3/D0EA:	A00100  	LDY #$0001     ; Bytes: 1
C3/D0ED:	8412    	STY $12        ; Set src1 size
C3/D0EF:	8419    	STY $19        ; Set src2 size
C3/D0F1:	60      	RTS

Animate sideview airship's rotors
C3/D0F2:	A523    	LDA $23        ; NMI count
C3/D0F4:	2901    	AND #$01       ; Even value?
C3/D0F6:	F00B    	BEQ $D103      ; Branch if so
C3/D0F8:	A958    	LDA #$58       ; Tile: 88
C3/D0FA:	8F49987E	STA $7E9849    ; Set rotors'
C3/D0FE:	200ED1  	JSR $D10E      ; Queue upload
C3/D101:	38      	SEC            ; Set to requeue
C3/D102:	60      	RTS            ; Exit
C3/D103:	A934    	LDA #$34       ; Tile: 52
C3/D105:	8F49987E	STA $7E9849    ; Set rotors'
C3/D109:	200ED1  	JSR $D10E      ; Queue upload
C3/D10C:	38      	SEC            ; Set to requeue
C3/D10D:	60      	RTS

Set to refresh sideview airship's rotors
C3/D10E:	A09208  	LDY #$0892     ; $0892
C3/D111:	8414    	STY $14        ; Set VRAM ptr
C3/D113:	A04998  	LDY #$9849     ; 7E/9849
C3/D116:	8416    	STY $16        ; Set src LBs
C3/D118:	A97E    	LDA #$7E       ; Bank: 7E
C3/D11A:	8518    	STA $18        ; Set src HB
C3/D11C:	A00100  	LDY #$0001     ; Bytes: 1
C3/D11F:	8412    	STY $12        ; Set data size
C3/D121:	60      	RTS

Process queued zoom-out for final airship scene
C3/D122:	2027D1  	JSR $D127      ; Zoom out
C3/D125:	38      	SEC            ; Set to requeue
C3/D126:	60      	RTS

Zoom out from final airship
C3/D127:	A523    	LDA $23        ; NMI count
C3/D129:	2907    	AND #$07       ; Now 0-7
C3/D12B:	D00A    	BNE $D137      ; Branch if > 0
C3/D12D:	A4B9    	LDY $B9        ; M7 center Y
C3/D12F:	88      	DEY            ; Subtract 1
C3/D130:	84B9    	STY $B9        ; Save changes
C3/D132:	A4B7    	LDY $B7        ; M7 center X
C3/D134:	C8      	INY            ; Add 1
C3/D135:	84B7    	STY $B7        ; Save changes
C3/D137:	C220    	REP #$20       ; 16-bit A
C3/D139:	E6BB    	INC $BB        ; Matrix A +1
C3/D13B:	E6BB    	INC $BB        ; Matrix A +1
C3/D13D:	E6C1    	INC $C1        ; Matrix D +1
C3/D13F:	E6C1    	INC $C1        ; Matrix D +1
C3/D141:	E220    	SEP #$20       ; 8-bit A
C3/D143:	60      	RTS

Upload rearview airship's balloon graphics
C3/D144:	A0BAD7  	LDY #$D7BA     ; 7E/D7BA
C3/D147:	84E7    	STY $E7        ; Set src LBs
C3/D149:	A97E    	LDA #$7E       ; Bank: 7E
C3/D14B:	85E9    	STA $E9        ; Set src HB
C3/D14D:	A08005  	LDY #$0580     ; Bytes: 1408
C3/D150:	84EB    	STY $EB        ; Set data size
C3/D152:	64ED    	STZ $ED        ; Attrib LB: 0
C3/D154:	64EE    	STZ $EE        ; Attrib HB: 0
C3/D156:	A0006C  	LDY #$6C00     ; VRAM pointer
C3/D159:	4CB9DD  	JMP $DDB9      ; Upload data

Initialize credits' colors to black for fade-in
C3/D15C:	A9C3    	LDA #$C3       ; Src HB
C3/D15E:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/D161:	A2F410  	LDX #$10F4     ; Src LBs
C3/D164:	208E0F  	JSR $0F8E      ; Do big font
C3/D167:	A9C3    	LDA #$C3       ; Src HB
C3/D169:	A0E931  	LDY #$31E9     ; To OBJ pal 5
C3/D16C:	A2F410  	LDX #$10F4     ; Src LBs
C3/D16F:	208E0F  	JSR $0F8E      ; Do small font
C3/D172:	60      	RTS

Load BG1 palettes for credits scenes
C3/D173:	A9C2    	LDA #$C2       ; Src HB
C3/D175:	A06930  	LDY #$3069     ; To BG pal 1
C3/D178:	A2BC95  	LDX #$95BC     ; Src LBs
C3/D17B:	208E0F  	JSR $0F8E      ; C3/D02B...
C3/D17E:	A9C2    	LDA #$C2       ; Src HB
C3/D180:	A08930  	LDY #$3089     ; To BG pal 2
C3/D183:	A2DC95  	LDX #$95DC     ; Src LBs
C3/D186:	208E0F  	JSR $0F8E      ; Do sea
C3/D189:	A9C2    	LDA #$C2       ; Src HB
C3/D18B:	A0A930  	LDY #$30A9     ; To BG pal 3
C3/D18E:	A2FC95  	LDX #$95FC     ; Src LBs
C3/D191:	208E0F  	JSR $0F8E      ; Do clouds
C3/D194:	A9C2    	LDA #$C2       ; Src HB
C3/D196:	A0C930  	LDY #$30C9     ; To BG pal 4
C3/D199:	A21C96  	LDX #$961C     ; Src LBs
C3/D19C:	208E0F  	JSR $0F8E      ; Do trees
C3/D19F:	A9C2    	LDA #$C2       ; Src HB
C3/D1A1:	A00931  	LDY #$3109     ; To BG pal 6
C3/D1A4:	A23C96  	LDX #$963C     ; Src LBs
C3/D1A7:	208E0F  	JSR $0F8E      ; Do lake
C3/D1AA:	A9C2    	LDA #$C2       ; Src HB
C3/D1AC:	A02931  	LDY #$3129     ; To BG pal 7
C3/D1AF:	A25C96  	LDX #$965C     ; Src LBs
C3/D1B2:	208E0F  	JSR $0F8E      ; Do grass
C3/D1B5:	60      	RTS

Scroll actor's pseudonym down
C3/D1B6:	A4CF    	LDY $CF        ; Scroll timer
C3/D1B8:	C464    	CPY $64        ; At endpoint?
C3/D1BA:	F00E    	BEQ $D1CA      ; Dequeue if so
C3/D1BC:	A523    	LDA $23        ; NMI count
C3/D1BE:	2903    	AND #$03       ; Now 0-3
C3/D1C0:	D006    	BNE $D1C8      ; Exit if 1-3
C3/D1C2:	C220    	REP #$20       ; 16-bit A
C3/D1C4:	C63F    	DEC $3F        ; BG3 camera up
C3/D1C6:	E220    	SEP #$20       ; 8-bit A
C3/D1C8:	38      	SEC            ; Set to requeue
C3/D1C9:	60      	RTS            ; Exit
C3/D1CA:	18      	CLC            ; Set to dequeue
C3/D1CB:	60      	RTS

Process queued field fade-in
C3/D1CC:	AA      	TAX            ; Index mode
C3/D1CD:	7CD0D1  	JMP ($D1D0,X)  ; Handle mode

Jump table
C3/D1D0:	D4D1    	; Initialize brightness
C3/D1D2:	E3D1    	; Increase brightness

Mode 0: Initialize brightness
C3/D1D4:	A62D    	LDX $2D        ; Queue index
C3/D1D6:	FE4936  	INC $3649,X    ; Mode +1
C3/D1D9:	A901    	LDA #$01       ; BRT: 1 and ON
C3/D1DB:	9D4A34  	STA $344A,X    ; Set next BRT
C3/D1DE:	A90F    	LDA #$0F       ; Frames: 15
C3/D1E0:	9D4933  	STA $3349,X    ; Set timer

Mode 1: Increase brightness
C3/D1E3:	A62D    	LDX $2D        ; Queue index
C3/D1E5:	BD4933  	LDA $3349,X    ; Timer expired?
C3/D1E8:	F00D    	BEQ $D1F7      ; Finalize if so
C3/D1EA:	BD4A34  	LDA $344A,X    ; Next brightness
C3/D1ED:	8544    	STA $44        ; Set as current
C3/D1EF:	FE4A34  	INC $344A,X    ; Next BRT +1
C3/D1F2:	DE4933  	DEC $3349,X    ; Timer -1
C3/D1F5:	38      	SEC            ; Set to requeue
C3/D1F6:	60      	RTS            ; Exit
C3/D1F7:	A90F    	LDA #$0F       ; BRT: 15 and ON
C3/D1F9:	8544    	STA $44        ; Set brightness
C3/D1FB:	18      	CLC            ; Set to dequeue
C3/D1FC:	60      	RTS

Process queued field fade-out
C3/D1FD:	AA      	TAX            ; Index mode
C3/D1FE:	7C01D2  	JMP ($D201,X)  ; Handle mode

Jump table
C3/D201:	05D2    	; Initialize brightness
C3/D203:	0FD2    	; Decrease brightness

Mode 0: Initialize brightness
C3/D205:	A62D    	LDX $2D        ; Queue index
C3/D207:	FE4936  	INC $3649,X    ; Mode +1
C3/D20A:	A90F    	LDA #$0F       ; BRT: 15 and ON
C3/D20C:	9DCA33  	STA $33CA,X    ; Set next BRT

Mode 1: Decrease brightness
C3/D20F:	A420    	LDY $20        ; Timer expired?
C3/D211:	F00C    	BEQ $D21F      ; Finalize if so
C3/D213:	A62D    	LDX $2D        ; Queue index
C3/D215:	BDCA33  	LDA $33CA,X    ; Next brightness
C3/D218:	8544    	STA $44        ; Set as current
C3/D21A:	DECA33  	DEC $33CA,X    ; Next BRT -1
C3/D21D:	38      	SEC            ; Set to requeue
C3/D21E:	60      	RTS            ; Exit
C3/D21F:	A980    	LDA #$80       ; BRT: 0 and OFF
C3/D221:	8544    	STA $44        ; Set brightness
C3/D223:	18      	CLC            ; Set to dequeue
C3/D224:	60      	RTS

Queue Mode 7 animation script loading
C3/D225:	48      	PHA            ; Save ptr HB
C3/D226:	5A      	PHY            ; Save ptr LBs
C3/D227:	A901    	LDA #$01       ; Min slot: 8
C3/D229:	A03FD2  	LDY #$D23F     ; C3/D23F
C3/D22C:	207311  	JSR $1173      ; Queue anim fn
C3/D22F:	C220    	REP #$20       ; 16-bit A
C3/D231:	7A      	PLY            ; Anim ptr LBs
C3/D232:	98      	TYA            ; Put in A
C3/D233:	9FC9327E	STA $7E32C9,X  ; Put in queue
C3/D237:	E220    	SEP #$20       ; 8-bit A
C3/D239:	68      	PLA            ; Anim ptr HB
C3/D23A:	9FCA357E	STA $7E35CA,X  ; Put in queue
C3/D23E:	60      	RTS

Load parameters for Mode 7 animation
C3/D23F:	AA      	TAX            ; Index mode
C3/D240:	7C43D2  	JMP ($D243,X)  ; Handle mode

Jump table for the above
C3/D243:	47D2    	; Initialize timer
C3/D245:	4FD2    	; Load animation flags

Mode 0: Initialize sequence timer
C3/D247:	A62D    	LDX $2D        ; Queue index
C3/D249:	FE4936  	INC $3649,X    ; Mode +1
C3/D24C:	200612  	JSR $1206      ; Set anim timer

Mode 1: Load animation flags
C3/D24F:	A62D    	LDX $2D        ; Queue index
C3/D251:	202712  	JSR $1227      ; Anim timer -1
C3/D254:	7B      	TDC            ; Clear A
C3/D255:	BDC936  	LDA $36C9,X    ; Anim index
C3/D258:	A8      	TAY            ; Index it
C3/D259:	C220    	REP #$20       ; 16-bit A
C3/D25B:	B7EB    	LDA [$EB],Y    ; Anim flags
C3/D25D:	8504    	STA $04        ; Set as current
C3/D25F:	E220    	SEP #$20       ; 8-bit A
C3/D261:	38      	SEC            ; Set to requeue
C3/D262:	60      	RTS

Refresh Mode 7 registers (NMI)
C3/D263:	A5BB    	LDA $BB        ; Matrix A LB
C3/D265:	8D1B21  	STA $211B      ; To register
C3/D268:	A5BC    	LDA $BC        ; Matrix A HB
C3/D26A:	8D1B21  	STA $211B      ; To register
C3/D26D:	A5BD    	LDA $BD        ; Matrix B LB
C3/D26F:	8D1C21  	STA $211C      ; To register
C3/D272:	A5BE    	LDA $BE        ; Matrix B HB
C3/D274:	8D1C21  	STA $211C      ; To register
C3/D277:	A5BF    	LDA $BF        ; Matrix C LB
C3/D279:	8D1D21  	STA $211D      ; To register
C3/D27C:	A5C0    	LDA $C0        ; Matrix C HB
C3/D27E:	8D1D21  	STA $211D      ; To register
C3/D281:	A5C1    	LDA $C1        ; Matrix D LB
C3/D283:	8D1E21  	STA $211E      ; To register
C3/D286:	A5C2    	LDA $C2        ; Matrix D HB
C3/D288:	8D1E21  	STA $211E      ; To register
C3/D28B:	A5B7    	LDA $B7        ; Center X LB
C3/D28D:	8D1F21  	STA $211F      ; To register
C3/D290:	A5B8    	LDA $B8        ; Center X HB
C3/D292:	8D1F21  	STA $211F      ; To register
C3/D295:	A5B9    	LDA $B9        ; Center Y LB
C3/D297:	8D2021  	STA $2120      ; To register
C3/D29A:	A5BA    	LDA $BA        ; Center Y HB
C3/D29C:	8D2021  	STA $2120      ; To register
C3/D29F:	60      	RTS

Queue Mode 7 animation script decoding
C3/D2A0:	A900    	LDA #$00       ; Min slot: 0
C3/D2A2:	A0A9D2  	LDY #$D2A9     ; C3/D2A9
C3/D2A5:	207311  	JSR $1173      ; Queue anim fn
C3/D2A8:	60      	RTS

Decode parameters for Mode 7 animation
C3/D2A9:	A504    	LDA $04        ; Anim flags
C3/D2AB:	8910    	BIT #$10       ; Tilt right?
C3/D2AD:	F008    	BEQ $D2B7      ; Skip if not
C3/D2AF:	C220    	REP #$20       ; 16-bit A
C3/D2B1:	E6C3    	INC $C3        ; Mod index +1
C3/D2B3:	E220    	SEP #$20       ; 8-bit A
C3/D2B5:	E659    	INC $59        ; No use...

Fork: Rotate counterclockwise
C3/D2B7:	A504    	LDA $04        ; Anim flags
C3/D2B9:	8920    	BIT #$20       ; Tilt left?
C3/D2BB:	F008    	BEQ $D2C5      ; Skip if not
C3/D2BD:	C220    	REP #$20       ; 16-bit A
C3/D2BF:	C6C3    	DEC $C3        ; Mod index -1
C3/D2C1:	E220    	SEP #$20       ; 8-bit A
C3/D2C3:	C659    	DEC $59        ; No use...

Fork: Rotate forward
C3/D2C5:	A504    	LDA $04        ; Anim flags
C3/D2C7:	8940    	BIT #$40       ; Tilt up?
C3/D2C9:	F006    	BEQ $D2D1      ; Skip if not
C3/D2CB:	C220    	REP #$20       ; 16-bit A
C3/D2CD:	E6C7    	INC $C7        ; Matrix mod +1
C3/D2CF:	E220    	SEP #$20       ; 8-bit A

Fork: Rotate backward
C3/D2D1:	A505    	LDA $05        ; Anim flags
C3/D2D3:	8940    	BIT #$40       ; Tilt down?
C3/D2D5:	F006    	BEQ $D2DD      ; Skip if not
C3/D2D7:	C220    	REP #$20       ; 16-bit A
C3/D2D9:	C6C7    	DEC $C7        ; Matrix mod -1
C3/D2DB:	E220    	SEP #$20       ; 8-bit A

Fork: Zoom in
C3/D2DD:	A504    	LDA $04        ; Anim flags
C3/D2DF:	8980    	BIT #$80       ; Inc divisor?
C3/D2E1:	F002    	BEQ $D2E5      ; Skip if not
C3/D2E3:	E6C6    	INC $C6        ; Divisor +1

Fork: Zoom out
C3/D2E5:	A505    	LDA $05        ; Anim flags
C3/D2E7:	8980    	BIT #$80       ; Dec divisor?
C3/D2E9:	F002    	BEQ $D2ED      ; Skip if not
C3/D2EB:	C6C6    	DEC $C6        ; Divisor -1

Fork: Scroll southward
C3/D2ED:	A505    	LDA $05        ; Anim flags
C3/D2EF:	8908    	BIT #$08       ; Scroll down?
C3/D2F1:	F008    	BEQ $D2FB      ; Skip if not
C3/D2F3:	C220    	REP #$20       ; 16-bit A
C3/D2F5:	C6B9    	DEC $B9        ; Center Y -1
C3/D2F7:	C637    	DEC $37        ; BG1 Y-Pos -1
C3/D2F9:	E220    	SEP #$20       ; 8-bit A

Fork: Scroll northward
C3/D2FB:	A505    	LDA $05        ; Anim flags
C3/D2FD:	8904    	BIT #$04       ; Scroll up?
C3/D2FF:	F008    	BEQ $D309      ; Skip if not
C3/D301:	C220    	REP #$20       ; 16-bit A
C3/D303:	E6B9    	INC $B9        ; Center Y +1
C3/D305:	E637    	INC $37        ; BG1 Y-Pos +1
C3/D307:	E220    	SEP #$20       ; 8-bit A

Fork: Scroll eastward
C3/D309:	A505    	LDA $05        ; Anim flags
C3/D30B:	8902    	BIT #$02       ; Scroll right?
C3/D30D:	F008    	BEQ $D317      ; Skip if not
C3/D30F:	C220    	REP #$20       ; 16-bit A
C3/D311:	C6B7    	DEC $B7        ; Center X -1
C3/D313:	C635    	DEC $35        ; BG1 X-Pos -1
C3/D315:	E220    	SEP #$20       ; 8-bit A

Fork: Scroll westward
C3/D317:	A505    	LDA $05        ; Anim flags
C3/D319:	8901    	BIT #$01       ; Scroll left?
C3/D31B:	F008    	BEQ $D325      ; Skip if not
C3/D31D:	C220    	REP #$20       ; 16-bit A
C3/D31F:	E6B7    	INC $B7        ; Center X +1
C3/D321:	E635    	INC $35        ; BG1 X-Pos +1
C3/D323:	E220    	SEP #$20       ; 8-bit A

Fork: Build Mode 7 matrix tables
C3/D325:	2038D3  	JSR $D338      ; Cap center X/Y
C3/D328:	C220    	REP #$20       ; 16-bit A
C3/D32A:	A504    	LDA $04        ; Anim flags
C3/D32C:	29FFF0  	AND #$F0FF     ; Only scrolling?
C3/D32F:	E220    	SEP #$20       ; 8-bit A
C3/D331:	F003    	BEQ $D336      ; Exit if so
C3/D333:	20D2DD  	JSR $DDD2      ; Build tables
C3/D336:	38      	SEC            ; Set to requeue
C3/D337:	60      	RTS

Keep Mode 7 center X and Y within boundaries
C3/D338:	C220    	REP #$20       ; 16-bit A
C3/D33A:	A5B7    	LDA $B7        ; Center X
C3/D33C:	29FF1F  	AND #$1FFF     ; Clear excess
C3/D33F:	85B7    	STA $B7        ; Save changes
C3/D341:	A5B9    	LDA $B9        ; Center Y
C3/D343:	29FF1F  	AND #$1FFF     ; Clear excess
C3/D346:	85B9    	STA $B9        ; Save changes
C3/D348:	E220    	SEP #$20       ; 8-bit A
C3/D34A:	60      	RTS

Configure Mode 7 not to apply to cloudy sky
C3/D34B:	228FCBD4	JSL $D4CB8F    ; HDMA: Matrices
C3/D34F:	9C1043  	STZ $4310      ; 1Rx1B to PPU
C3/D352:	A905    	LDA #$05       ; $2105
C3/D354:	8D1143  	STA $4311      ; To BG mode
C3/D357:	A06AD3  	LDY #$D36A     ; C3/D36A
C3/D35A:	8C1243  	STY $4312      ; Set src LBs
C3/D35D:	A9C3    	LDA #$C3       ; Bank: C3
C3/D35F:	8D1443  	STA $4314      ; Set src HB
C3/D362:	8D1743  	STA $4317      ; Set indir HB
C3/D365:	A902    	LDA #$02       ; Channel: 1
C3/D367:	0443    	TSB $43        ; Queue HDMA-1
C3/D369:	60      	RTS

BG mode and tile size per scanline
C3/D36A:	47 01   	; Mode 1, 8x8 tiles
C3/D36C:	01 07   	; Mode 7
C3/D36E:	00      	; End

Set color addition and math for field and for cloudy sky
C3/D36F:	A901    	LDA #$01       ; 2Rx1B to PPU
C3/D371:	8D3043  	STA $4330      ; Set DMA mode
C3/D374:	A930    	LDA #$30       ; $2130, $2131
C3/D376:	8D3143  	STA $4331      ; To color regs
C3/D379:	A0A7D3  	LDY #$D3A7     ; C3/D3A7
C3/D37C:	8C3243  	STY $4332      ; Set src LBs
C3/D37F:	A9C3    	LDA #$C3       ; Bank: C3
C3/D381:	8D3443  	STA $4334      ; Set src HB
C3/D384:	8D3743  	STA $4337      ; Set indir HB
C3/D387:	A908    	LDA #$08       ; Channel: 3
C3/D389:	0443    	TSB $43        ; Queue HDMA-3
C3/D38B:	60      	RTS

Queue gradient effect for field under sky
C3/D38C:	9C2043  	STZ $4320      ; 1Rx1B to PPU
C3/D38F:	A932    	LDA #$32       ; $2132
C3/D391:	8D2143  	STA $4321      ; To fixed color
C3/D394:	A0AED3  	LDY #$D3AE     ; C3/D3AE
C3/D397:	8C2243  	STY $4322      ; Set src LBs
C3/D39A:	A9C3    	LDA #$C3       ; Bank: C3
C3/D39C:	8D2443  	STA $4324      ; Set src HB
C3/D39F:	8D2743  	STA $4327      ; Set indir HB
C3/D3A2:	A904    	LDA #$04       ; Channel: 2
C3/D3A4:	0443    	TSB $43        ; Queue HDMA-2
C3/D3A6:	60      	RTS

Color addition and math per scanline
C3/D3A7:	47 80 41	; BG1, inside window, half mode
C3/D3AA:	01 82 01	; BG1, inside window, add subscreen
C3/D3AD:	00      	; End

Gradient table for the above
C3/D3AE:	47 E0   	; RGB: 0
C3/D3B0:	01 ED   	; RGB: 13
C3/D3B2:	01 EB   	; RGB: 11
C3/D3B4:	01 EA   	; RGB: 10
C3/D3B6:	02 E9   	; RGB: 9
C3/D3B8:	03 E8   	; RGB: 8
C3/D3BA:	04 E7   	; RGB: 7
C3/D3BC:	05 E6   	; RGB: 6
C3/D3BE:	06 E5   	; RGB: 5
C3/D3C0:	07 E4   	; RGB: 4
C3/D3C2:	08 E3   	; RGB: 3
C3/D3C4:	0C E2   	; RGB: 2
C3/D3C6:	0F E1   	; RGB: 1
C3/D3C8:	1E E0   	; RGB: 0
C3/D3CA:	00      	; End

Queue adjustable gradient effect (unused)
C3/D3CB:	9C2043  	STZ $4320      ; 1Rx1B to PPU
C3/D3CE:	A932    	LDA #$32       ; $2132
C3/D3D0:	8D2143  	STA $4321      ; To fixed color
C3/D3D3:	A04998  	LDY #$9849     ; 7E/9849
C3/D3D6:	8C2243  	STY $4322      ; Set src LBs
C3/D3D9:	A97E    	LDA #$7E       ; Bank: 7E
C3/D3DB:	8D2443  	STA $4324      ; Set src HB
C3/D3DE:	8D2743  	STA $4327      ; Set indir HB
C3/D3E1:	A904    	LDA #$04       ; Channel: 2
C3/D3E3:	0443    	TSB $43        ; Queue HDMA-2
C3/D3E5:	60      	RTS

Reset Mode 7 parameters
C3/D3E6:	A00001  	LDY #$0100     ; 256
C3/D3E9:	84B7    	STY $B7        ; Set center X
C3/D3EB:	A08000  	LDY #$0080     ; 128
C3/D3EE:	84B9    	STY $B9        ; Set center Y
C3/D3F0:	8435    	STY $35        ; Set BG1 X-Pos
C3/D3F2:	7B      	TDC            ; Clear A
C3/D3F3:	A8      	TAY            ; Clear Y
C3/D3F4:	8437    	STY $37        ; BG1 Y-Pos: 0
C3/D3F6:	6458    	STZ $58        ; No use...
C3/D3F8:	A940    	LDA #$40       ; No use...
C3/D3FA:	8559    	STA $59        ; No use...
C3/D3FC:	A00000  	LDY #$0000     ; Vertical angle
C3/D3FF:	84C7    	STY $C7        ; Set for BG1
C3/D401:	A00001  	LDY #$0100     ; Base divisor
C3/D404:	84C5    	STY $C5        ; Set matrices'
C3/D406:	A00000  	LDY #$0000     ; Mod index: 0
C3/D409:	84C3    	STY $C3        ; Set matrices'
C3/D40B:	60      	RTS

Unpack and upload graphics and tilemaps for sideview airship scene
C3/D40C:	2039D4  	JSR $D439      ; Upload font GFX
C3/D40F:	20B1D6  	JSR $D6B1      ; Unpack map, GFX
C3/D412:	206BD6  	JSR $D66B      ; Pal numbers loc
C3/D415:	2052D5  	JSR $D552      ; Convert M7 GFX A
C3/D418:	202AD4  	JSR $D42A      ; Insert tilemap A
C3/D41B:	2034D6  	JSR $D634      ; Upload M7 map A
C3/D41E:	206BD6  	JSR $D66B      ; Pal numbers loc
C3/D421:	2062D5  	JSR $D562      ; Convert M7 GFX B
C3/D424:	202AD4  	JSR $D42A      ; Insert tilemap B
C3/D427:	4C4CD6  	JMP $D64C      ; Upload M7 map B

Assemble half of tilemap for sideview airship scene
C3/D42A:	208DD6  	JSR $D68D      ; Set ptrs loc
C3/D42D:	A21AFC  	LDX #$FC1A     ; Tiles loc
C3/D430:	86F1    	STX $F1        ; Set src LBs
C3/D432:	A97E    	LDA #$7E       ; Bank: 7E
C3/D434:	85F3    	STA $F3        ; Set src HB
C3/D436:	4C06D7  	JMP $D706      ; Build map

Unpack and upload font graphics for credits
C3/D439:	A000BA  	LDY #$BA00     ; Source LBs
C3/D43C:	A9C4    	LDA #$C4       ; Source HB
C3/D43E:	2061DD  	JSR $DD61      ; Load big font
C3/D441:	2097D4  	JSR $D497      ; Set as 16x16
C3/D444:	A000C0  	LDY #$C000     ; 7E/C000
C3/D447:	84E7    	STY $E7        ; Set src LBs
C3/D449:	A97E    	LDA #$7E       ; Bank: 7E
C3/D44B:	85E9    	STA $E9        ; Set src HB
C3/D44D:	A0000C  	LDY #$0C00     ; Bytes: 3072
C3/D450:	84EB    	STY $EB        ; Set data size
C3/D452:	A00070  	LDY #$7000     ; VRAM pointer
C3/D455:	2086DD  	JSR $DD86      ; Upload font
C3/D458:	A0C087  	LDY #$87C0     ; C4/87C0
C3/D45B:	84E7    	STY $E7        ; Set src LBs
C3/D45D:	A9C4    	LDA #$C4       ; Bank: C4
C3/D45F:	85E9    	STA $E9        ; Set src HB
C3/D461:	A00002  	LDY #$0200     ; Bytes: 512
C3/D464:	84EB    	STY $EB        ; Set data size
C3/D466:	A0007E  	LDY #$7E00     ; VRAM pointer
C3/D469:	2086DD  	JSR $DD86      ; Do small font
C3/D46C:	4C6FD4  	JMP $D46F      ; ...

Upload period and space character for special thanks
C3/D46F:	A0108C  	LDY #$8C10     ; C4/8C10
C3/D472:	84E7    	STY $E7        ; Set src LBs
C3/D474:	A9C4    	LDA #$C4       ; Bank: C4
C3/D476:	85E9    	STA $E9        ; Set src HB
C3/D478:	A01000  	LDY #$0010     ; Bytes: 16
C3/D47B:	84EB    	STY $EB        ; Set data size
C3/D47D:	A0A07F  	LDY #$7FA0     ; VRAM pointer
C3/D480:	2086DD  	JSR $DD86      ; Upload period
C3/D483:	A0B08F  	LDY #$8FB0     ; C4/8FB0
C3/D486:	84E7    	STY $E7        ; Set src LBs
C3/D488:	A9C4    	LDA #$C4       ; Bank: C4
C3/D48A:	85E9    	STA $E9        ; Set src HB
C3/D48C:	A01000  	LDY #$0010     ; Bytes: 16
C3/D48F:	84EB    	STY $EB        ; Set data size
C3/D491:	A0B07F  	LDY #$7FB0     ; VRAM pointer
C3/D494:	4C86DD  	JMP $DD86      ; Upload space

Expand large font graphics to 16x16 for credits
C3/D497:	8B      	PHB            ; Save DB
C3/D498:	A97E    	LDA #$7E       ; Bank: 7E
C3/D49A:	48      	PHA            ; Put on stack
C3/D49B:	AB      	PLB            ; Set DB to 7E
C3/D49C:	A600    	LDX $00        ; ROM index: 0
C3/D49E:	9B      	TXY            ; Dst index: 0
C3/D49F:	DA      	PHX            ; Save ROM index
C3/D4A0:	7B      	TDC            ; Clear A
C3/D4A1:	BF5498C2	LDA $C29854,X  ; Tile index
C3/D4A5:	C220    	REP #$20       ; 16-bit A
C3/D4A7:	0A      	ASL A          ; x2
C3/D4A8:	0A      	ASL A          ; x4
C3/D4A9:	0A      	ASL A          ; x8
C3/D4AA:	0A      	ASL A          ; x16
C3/D4AB:	AA      	TAX            ; Index it
C3/D4AC:	E220    	SEP #$20       ; 8-bit A
C3/D4AE:	A910    	LDA #$10       ; Rows: 8
C3/D4B0:	85E0    	STA $E0        ; Set counter
C3/D4B2:	BD00C0  	LDA $C000,X    ; 8 px, 1 plane
C3/D4B5:	9900C4  	STA $C400,Y    ; Put in buffer
C3/D4B8:	E8      	INX            ; Src index +1
C3/D4B9:	C8      	INY            ; Dst index +1
C3/D4BA:	C6E0    	DEC $E0        ; Counter -1
C3/D4BC:	D0F4    	BNE $D4B2      ; Loop till zero

Fork: Blank right-hand 8x8 tile
C3/D4BE:	7B      	TDC            ; Clear A
C3/D4BF:	AA      	TAX            ; Counter: 0
C3/D4C0:	9900C4  	STA $C400,Y    ; Clear a plane
C3/D4C3:	C8      	INY            ; Dst index +1
C3/D4C4:	E8      	INX            ; Counter +1
C3/D4C5:	E01000  	CPX #$0010     ; Done 8 rows?
C3/D4C8:	D0F6    	BNE $D4C0      ; Loop if not
C3/D4CA:	FA      	PLX            ; ROM index
C3/D4CB:	E8      	INX            ; ROM index +1
C3/D4CC:	E04000  	CPX #$0040     ; Done 64 tiles?
C3/D4CF:	D0CE    	BNE $D49F      ; Loop if not
C3/D4D1:	AB      	PLB            ; Restore DB
C3/D4D2:	60      	RTS

Unpack and upload cloudy sky graphics and tilemap
C3/D4D3:	C220    	REP #$20       ; 16-bit A
C3/D4D5:	AF06B2EE	LDA $EEB206    ; Source LBs
C3/D4D9:	A8      	TAY            ; Put in Y
C3/D4DA:	E220    	SEP #$20       ; 8-bit A
C3/D4DC:	AF08B2EE	LDA $EEB208    ; Source HB
C3/D4E0:	2061DD  	JSR $DD61      ; Unpack graphics
C3/D4E3:	2018D5  	JSR $D518      ; Src: 7E/C000
C3/D4E6:	A0201A  	LDY #$1A20     ; Bytes: 6688
C3/D4E9:	84EB    	STY $EB        ; Set data size
C3/D4EB:	64ED    	STZ $ED        ; Attrib LB: 0
C3/D4ED:	64EE    	STZ $EE        ; Attrib HB: 0
C3/D4EF:	A00040  	LDY #$4000     ; VRAM pointer
C3/D4F2:	20B9DD  	JSR $DDB9      ; Upload graphics
C3/D4F5:	C220    	REP #$20       ; 16-bit A
C3/D4F7:	AF09B2EE	LDA $EEB209    ; Source LBs
C3/D4FB:	A8      	TAY            ; Put in Y
C3/D4FC:	E220    	SEP #$20       ; 8-bit A
C3/D4FE:	AF0BB2EE	LDA $EEB20B    ; Source HB
C3/D502:	2061DD  	JSR $DD61      ; Unpack tilemap
C3/D505:	A00020  	LDY #$2000     ; Add: Priority
C3/D508:	84ED    	STY $ED        ; Set complement
C3/D50A:	2018D5  	JSR $D518      ; Src: 7E/C000
C3/D50D:	A00004  	LDY #$0400     ; Bytes: 1024
C3/D510:	84EB    	STY $EB        ; Set data size
C3/D512:	A00050  	LDY #$5000     ; VRAM pointer
C3/D515:	4CB9DD  	JMP $DDB9      ; Upload tilemap

Set source for uploading decompressed data
C3/D518:	A000C0  	LDY #$C000     ; 7E/C000
C3/D51B:	84E7    	STY $E7        ; Set src LBs
C3/D51D:	A97E    	LDA #$7E       ; Bank: 7E
C3/D51F:	85E9    	STA $E9        ; Set src HB
C3/D521:	60      	RTS

Unpack and upload graphics and tilemaps for dense clouds
C3/D522:	2039D4  	JSR $D439      ; Upload font GFX
C3/D525:	20B1D6  	JSR $D6B1      ; Unpack map, GFX
C3/D528:	20D6D6  	JSR $D6D6      ; Upload sprites
C3/D52B:	206BD6  	JSR $D66B      ; Pal numbers loc
C3/D52E:	2052D5  	JSR $D552      ; Convert M7 GFX A
C3/D531:	2043D5  	JSR $D543      ; Insert tilemap A
C3/D534:	2034D6  	JSR $D634      ; Upload M7 map A
C3/D537:	206BD6  	JSR $D66B      ; Pal numbers loc
C3/D53A:	2062D5  	JSR $D562      ; Convert M7 GFX B
C3/D53D:	2043D5  	JSR $D543      ; Insert tilemap B
C3/D540:	4C4CD6  	JMP $D64C      ; Upload M7 map B

Assemble half of tilemap for dense clouds
C3/D543:	2086D6  	JSR $D686      ; Set ptrs loc
C3/D546:	A21AFC  	LDX #$FC1A     ; Tiles loc
C3/D549:	86F1    	STX $F1        ; Set src LBs
C3/D54B:	A97E    	LDA #$7E       ; Bank: 7E
C3/D54D:	85F3    	STA $F3        ; Set src HB
C3/D54F:	4C06D7  	JMP $D706      ; Build map

Add 4bpp graphics to Mode 7 map (first 128 tiles)
C3/D552:	64E4    	STZ $E4        ; Pal index LB
C3/D554:	64E5    	STZ $E5        ; Pal index HB
C3/D556:	A980    	LDA #$80       ; Tiles: 128
C3/D558:	85ED    	STA $ED        ; Set counter
C3/D55A:	A20098  	LDX #$9800     ; Source LBs
C3/D55D:	A97F    	LDA #$7F       ; Source HB
C3/D55F:	4C4FD7  	JMP $D74F      ; Convert GFX

Add 4bpp graphics to Mode 7 map (last 128 tiles)
C3/D562:	A28000  	LDX #$0080     ; Index: 128
C3/D565:	86E4    	STX $E4        ; Set pal index
C3/D567:	A980    	LDA #$80       ; Tiles: 128
C3/D569:	85ED    	STA $ED        ; Set counter
C3/D56B:	A200A8  	LDX #$A800     ; Source LBs
C3/D56E:	A97F    	LDA #$7F       ; Source HB
C3/D570:	4C4FD7  	JMP $D74F      ; Convert GFX

Unpack and upload graphics and tilemaps for grassfield scenes
C3/D573:	2039D4  	JSR $D439      ; Upload font GFX
C3/D576:	2094D6  	JSR $D694      ; Unpack map, GFX
C3/D579:	20D6D6  	JSR $D6D6      ; Upload sprites
C3/D57C:	4C82D5  	JMP $D582      ; Upload M7 map

Unpack and upload graphics and tilemaps for second-last airship scene
C3/D57F:	2094D6  	JSR $D694      ; Unpack map, GFX
C3/D582:	2064D6  	JSR $D664      ; Pal numbers loc
C3/D585:	2052D5  	JSR $D552      ; Convert M7 GFX A
C3/D588:	209BD5  	JSR $D59B      ; Insert tilemap A
C3/D58B:	2034D6  	JSR $D634      ; Upload M7 map A
C3/D58E:	2064D6  	JSR $D664      ; Pal numbers loc
C3/D591:	2062D5  	JSR $D562      ; Convert M7 GFX B
C3/D594:	209BD5  	JSR $D59B      ; Insert tilemap B
C3/D597:	204CD6  	JSR $D64C      ; Upload M7 map B
C3/D59A:	6B      	RTL

Assemble half of grassfield tilemap
C3/D59B:	2075D6  	JSR $D675      ; Set ptrs loc
C3/D59E:	A23ADD  	LDX #$DD3A     ; Tiles loc
C3/D5A1:	86F1    	STX $F1        ; Set src LBs
C3/D5A3:	A97E    	LDA #$7E       ; Bank: 7E
C3/D5A5:	85F3    	STA $F3        ; Set src HB
C3/D5A7:	4C06D7  	JMP $D706      ; Build map

Unpack and upload graphics and tilemaps for boat scene
C3/D5AA:	2039D4  	JSR $D439      ; Upload font GFX
C3/D5AD:	2094D6  	JSR $D694      ; Unpack map, GFX
C3/D5B0:	20D6D6  	JSR $D6D6      ; Upload sprites
C3/D5B3:	2064D6  	JSR $D664      ; Pal numbers loc
C3/D5B6:	2052D5  	JSR $D552      ; Convert M7 GFX A
C3/D5B9:	20CBD5  	JSR $D5CB      ; Insert tilemap A
C3/D5BC:	2034D6  	JSR $D634      ; Upload M7 map A
C3/D5BF:	2064D6  	JSR $D664      ; Pal numbers loc
C3/D5C2:	2062D5  	JSR $D562      ; Convert M7 GFX B
C3/D5C5:	20CBD5  	JSR $D5CB      ; Insert tilemap B
C3/D5C8:	4C4CD6  	JMP $D64C      ; Upload M7 map B

Assemble half of tilemap for sea with boat
C3/D5CB:	207FD6  	JSR $D67F      ; Set ptrs loc
C3/D5CE:	A2FA2C  	LDX #$2CFA     ; Tiles loc
C3/D5D1:	86F1    	STX $F1        ; Set src LBs
C3/D5D3:	A97F    	LDA #$7F       ; Bank: 7F
C3/D5D5:	85F3    	STA $F3        ; Set src HB
C3/D5D7:	4C06D7  	JMP $D706      ; Build map

Unpack and upload graphics and tilemaps for skimming airship scene
C3/D5DA:	2039D4  	JSR $D439      ; Upload font GFX
C3/D5DD:	2094D6  	JSR $D694      ; Unpack map, GFX
C3/D5E0:	20D6D6  	JSR $D6D6      ; Upload sprites
C3/D5E3:	2064D6  	JSR $D664      ; Pal numbers loc
C3/D5E6:	2052D5  	JSR $D552      ; Convert M7 GFX A
C3/D5E9:	20FBD5  	JSR $D5FB      ; Insert tilemap A
C3/D5EC:	2034D6  	JSR $D634      ; Upload M7 map A
C3/D5EF:	2064D6  	JSR $D664      ; Pal numbers loc
C3/D5F2:	2062D5  	JSR $D562      ; Convert M7 GFX B
C3/D5F5:	20FBD5  	JSR $D5FB      ; Insert tilemap B
C3/D5F8:	4C4CD6  	JMP $D64C      ; Upload M7 map B

Assemble half of tilemap for sea without boat
C3/D5FB:	2086D6  	JSR $D686      ; Set ptrs loc
C3/D5FE:	A2FA2C  	LDX #$2CFA     ; Tiles loc
C3/D601:	86F1    	STX $F1        ; Set src LBs
C3/D603:	A97F    	LDA #$7F       ; Bank: 7F
C3/D605:	85F3    	STA $F3        ; Set src HB
C3/D607:	4C06D7  	JMP $D706      ; Build map

Unpack and upload graphics and tilemaps for final airship scene
C3/D60A:	20B1D6  	JSR $D6B1      ; Unpack map, GFX
C3/D60D:	206BD6  	JSR $D66B      ; Pal numbers loc
C3/D610:	2052D5  	JSR $D552      ; Convert M7 GFX A
C3/D613:	2025D6  	JSR $D625      ; Insert tilemap
C3/D616:	2034D6  	JSR $D634      ; Upload M7 map A
C3/D619:	206BD6  	JSR $D66B      ; Pal numbers loc
C3/D61C:	2062D5  	JSR $D562      ; Convert M7 GFX B
C3/D61F:	2025D6  	JSR $D625      ; Insert tilemap B
C3/D622:	4C4CD6  	JMP $D64C      ; Upload M7 map B

Assemble half of tilemap for final airship scene
C3/D625:	2075D6  	JSR $D675      ; Set ptrs loc
C3/D628:	A21A04  	LDX #$041A     ; Tiles loc
C3/D62B:	86F1    	STX $F1        ; Set src LBs
C3/D62D:	A97F    	LDA #$7F       ; Bank: 7F
C3/D62F:	85F3    	STA $F3        ; Set src HB
C3/D631:	4C06D7  	JMP $D706      ; Build map

Upload upper half of Mode 7 map
C3/D634:	A000B8  	LDY #$B800     ; 7F/B800
C3/D637:	84E7    	STY $E7        ; Set src LBs
C3/D639:	A97F    	LDA #$7F       ; Bank: 7F
C3/D63B:	85E9    	STA $E9        ; Set src HB
C3/D63D:	64ED    	STZ $ED        ; Attrib LB: 0
C3/D63F:	64EE    	STZ $EE        ; Attrib HB: 0
C3/D641:	A00040  	LDY #$4000     ; Bytes: 16384
C3/D644:	84EB    	STY $EB        ; Set data size
C3/D646:	A00000  	LDY #$0000     ; VRAM pointer
C3/D649:	4CB9DD  	JMP $DDB9      ; Upload map

Upload lower half of Mode 7 map
C3/D64C:	A000B8  	LDY #$B800     ; 7F/B800
C3/D64F:	84E7    	STY $E7        ; Set src LBs
C3/D651:	A97F    	LDA #$7F       ; Bank: 7F
C3/D653:	85E9    	STA $E9        ; Set src HB
C3/D655:	64ED    	STZ $ED        ; Attrib LB: 0
C3/D657:	64EE    	STZ $EE        ; Attrib HB: 0
C3/D659:	A00040  	LDY #$4000     ; Bytes: 16384
C3/D65C:	84EB    	STY $EB        ; Set data size
C3/D65E:	A00020  	LDY #$2000     ; VRAM pointer
C3/D661:	4CB9DD  	JMP $DDB9      ; Upload map

Set palette index table location for plains or sea
C3/D664:	A2E1F9  	LDX #$F9E1     ; Ptrs loc LBs
C3/D667:	A9CF    	LDA #$CF       ; Ptrs loc HB
C3/D669:	8005    	BRA $D670      ; Set pointer

Set palette index table location for sky scenes
C3/D66B:	A269F9  	LDX #$F969     ; CF/F969
C3/D66E:	A9CF    	LDA #$CF       ; Bank: CF
C3/D670:	8691    	STX $91        ; Set loc LBs
C3/D672:	8593    	STA $93        ; Set loc HB
C3/D674:	60      	RTS

Set tilemap pointer table location for final scenes
C3/D675:	A2E9FA  	LDX #$FAE9     ; CF/FAE9
C3/D678:	A9CF    	LDA #$CF       ; Bank: CF
C3/D67A:	86F7    	STX $F7        ; Set loc LBs
C3/D67C:	85F9    	STA $F9        ; Set loc HB
C3/D67E:	60      	RTS

Set tilemap pointer table location for boat scene
C3/D67F:	A2C9FA  	LDX #$FAC9     ; Table loc LBs
C3/D682:	A9CF    	LDA #$CF       ; Table loc HB
C3/D684:	80F4    	BRA $D67A      ; Set pointer

Set tilemap pointer table location for skimming airship and cloud scenes
C3/D686:	A2A9FA  	LDX #$FAA9     ; Table loc LBs
C3/D689:	A9CF    	LDA #$CF       ; Table loc HB
C3/D68B:	80ED    	BRA $D67A      ; Set pointer

Set tilemap pointer table location for sideview airship scene
C3/D68D:	A209FB  	LDX #$FB09     ; Table loc LBs
C3/D690:	A9CF    	LDA #$CF       ; Table loc HB
C3/D692:	80E6    	BRA $D67A      ; Set pointer

Unpack credits scene GFX and maps, move ocean and grassfield GFX
C3/D694:	20CED6  	JSR $D6CE      ; Unpack data
C3/D697:	A21A14  	LDX #$141A     ; 7F/141A
C3/D69A:	86E7    	STX $E7        ; Set src LBs
C3/D69C:	A97F    	LDA #$7F       ; Bank: 7F
C3/D69E:	85E9    	STA $E9        ; Set src HB
C3/D6A0:	A00098  	LDY #$9800     ; 7F/9800
C3/D6A3:	84EB    	STY $EB        ; Set dst LBs
C3/D6A5:	A97F    	LDA #$7F       ; Bank: 7F
C3/D6A7:	85ED    	STA $ED        ; Set dst HB
C3/D6A9:	A0E018  	LDY #$18E0     ; Bytes: 6368
C3/D6AC:	84EF    	STY $EF        ; Set data size
C3/D6AE:	4CEED6  	JMP $D6EE      ; Move data

Unpack credits scene GFX and tilemaps, move cloud and BG airship GFX
C3/D6B1:	20CED6  	JSR $D6CE      ; Unpack data
C3/D6B4:	A23AED  	LDX #$ED3A     ; 7E/ED3A
C3/D6B7:	86E7    	STX $E7        ; Set src LBs
C3/D6B9:	A97E    	LDA #$7E       ; Bank: 7E
C3/D6BB:	85E9    	STA $E9        ; Set src HB
C3/D6BD:	A00098  	LDY #$9800     ; 7F/9800
C3/D6C0:	84EB    	STY $EB        ; Set dst LBs
C3/D6C2:	A97F    	LDA #$7F       ; Bank: 7F
C3/D6C4:	85ED    	STA $ED        ; Set dst HB
C3/D6C6:	A0E00E  	LDY #$0EE0     ; Bytes: 3808
C3/D6C9:	84EF    	STY $EF        ; Set data size
C3/D6CB:	4CEED6  	JMP $D6EE      ; Move data

Unpack non-font graphics for credits scenes
C3/D6CE:	A08F56  	LDY #$568F     ; Source LBs
C3/D6D1:	A9D9    	LDA #$D9       ; Source HB
C3/D6D3:	4C61DD  	JMP $DD61      ; Unpack data

Upload non-font sprite graphics for credits scenes
C3/D6D6:	A000C0  	LDY #$C000     ; 7E/C000
C3/D6D9:	84E7    	STY $E7        ; Set src LBs
C3/D6DB:	A97E    	LDA #$7E       ; Bank: 7E
C3/D6DD:	85E9    	STA $E9        ; Set src HB
C3/D6DF:	A0BA17  	LDY #$17BA     ; Bytes: 6074
C3/D6E2:	84EB    	STY $EB        ; Set data size
C3/D6E4:	64ED    	STZ $ED        ; Attrib LB: 0
C3/D6E6:	64EE    	STZ $EE        ; Attrib HB: 0
C3/D6E8:	A00060  	LDY #$6000     ; VRAM pointer
C3/D6EB:	4CB9DD  	JMP $DDB9      ; Upload data

Relocate decompressed data, adjust attributes if tilemap
C3/D6EE:	64F1    	STZ $F1        ; ...
C3/D6F0:	64F2    	STZ $F2        ; ...
C3/D6F2:	C220    	REP #$20       ; 16-bit A
C3/D6F4:	A400    	LDY $00        ; Index: 0
C3/D6F6:	B7E7    	LDA [$E7],Y    ; Unpacked data
C3/D6F8:	18      	CLC            ; ...
C3/D6F9:	65F1    	ADC $F1        ; ...
C3/D6FB:	97EB    	STA [$EB],Y    ; Put in buffer
C3/D6FD:	C8      	INY            ; Index +1
C3/D6FE:	C8      	INY            ; Index +1
C3/D6FF:	C4EF    	CPY $EF        ; Past range?
C3/D701:	D0F3    	BNE $D6F6      ; Loop if not
C3/D703:	E220    	SEP #$20       ; 8-bit A
C3/D705:	60      	RTS

Add a 128x64 tilemap to Mode 7 map
C3/D706:	7B      	TDC            ; Clear A
C3/D707:	A8      	TAY            ; Index: 0
C3/D708:	C220    	REP #$20       ; 16-bit A
C3/D70A:	B7F7    	LDA [$F7],Y    ; Src index
C3/D70C:	AA      	TAX            ; Save in X
C3/D70D:	C8      	INY            ; Index +1
C3/D70E:	C8      	INY            ; Index +1
C3/D70F:	B7F7    	LDA [$F7],Y    ; Dst index
C3/D711:	85E7    	STA $E7        ; Memorize it
C3/D713:	C8      	INY            ; Index +1
C3/D714:	C8      	INY            ; Index +1
C3/D715:	E220    	SEP #$20       ; 8-bit A
C3/D717:	5A      	PHY            ; Save index
C3/D718:	9B      	TXY            ; Src index
C3/D719:	2023D7  	JSR $D723      ; Copy 32x32 map
C3/D71C:	7A      	PLY            ; Restore index
C3/D71D:	C02000  	CPY #$0020     ; Done 8 maps?
C3/D720:	D0E6    	BNE $D708      ; Loop if not
C3/D722:	60      	RTS

Add a 32x32 tilemap to Mode 7 map
C3/D723:	8B      	PHB            ; Save DB
C3/D724:	A97F    	LDA #$7F       ; Bank: 7F
C3/D726:	48      	PHA            ; Put on stack
C3/D727:	AB      	PLB            ; Set DB to 7F
C3/D728:	A920    	LDA #$20       ; Rows: 32
C3/D72A:	85E0    	STA $E0        ; Set counter
C3/D72C:	A920    	LDA #$20       ; Columns: 32
C3/D72E:	85E1    	STA $E1        ; Set counter
C3/D730:	A6E7    	LDX $E7        ; Dst index
C3/D732:	B7F1    	LDA [$F1],Y    ; Tile number
C3/D734:	9D00B8  	STA $B800,X    ; Add to M7 map
C3/D737:	C8      	INY            ; Src index +1
C3/D738:	E8      	INX            ; Dst index +1
C3/D739:	E8      	INX            ; Dst index +1
C3/D73A:	C6E1    	DEC $E1        ; One less column
C3/D73C:	D0F4    	BNE $D732      ; Loop till last
C3/D73E:	C221    	REP #$21       ; 16-bit A; C-
C3/D740:	A5E7    	LDA $E7        ; Dst index
C3/D742:	690001  	ADC #$0100     ; +128 tiles
C3/D745:	85E7    	STA $E7        ; Save changes
C3/D747:	E220    	SEP #$20       ; 8-bit A
C3/D749:	C6E0    	DEC $E0        ; One less row
C3/D74B:	D0DF    	BNE $D72C      ; Loop till last
C3/D74D:	AB      	PLB            ; Restore DB
C3/D74E:	60      	RTS

Add 4bpp tile graphics to Mode 7 map
C3/D74F:	85E9    	STA $E9        ; Set src HB
C3/D751:	86E7    	STX $E7        ; Set src LBs
C3/D753:	8B      	PHB            ; Save DB
C3/D754:	A97F    	LDA #$7F       ; Bank: 7F
C3/D756:	48      	PHA            ; Put on stack
C3/D757:	AB      	PLB            ; Set DB to 7F
C3/D758:	7B      	TDC            ; Clear A
C3/D759:	AA      	TAX            ; Dst index: 0
C3/D75A:	A908    	LDA #$08       ; Rows left: 8
C3/D75C:	85E6    	STA $E6        ; Set counter

Fork: Load 8-pixel row
C3/D75E:	C220    	REP #$20       ; 16-bit A
C3/D760:	A01000  	LDY #$0010     ; Src index: 16
C3/D763:	A7E7    	LDA [$E7]      ; Planes A & B
C3/D765:	85F1    	STA $F1        ; Memorize them
C3/D767:	B7E7    	LDA [$E7],Y    ; Planes C & D
C3/D769:	85EF    	STA $EF        ; Memorize them
C3/D76B:	7B      	TDC            ; ...
C3/D76C:	E220    	SEP #$20       ; 8-bit A

Fork: Convert each pixel in row
C3/D76E:	A00800  	LDY #$0008     ; Pixels: 8
C3/D771:	7B      	TDC            ; Clear A
C3/D772:	06F0    	ASL $F0        ; Get plane D
C3/D774:	2A      	ROL A          ; Roll into A
C3/D775:	06EF    	ASL $EF        ; Get plane C
C3/D777:	2A      	ROL A          ; Roll into A
C3/D778:	06F2    	ASL $F2        ; Get plane B
C3/D77A:	2A      	ROL A          ; Roll into A
C3/D77B:	06F1    	ASL $F1        ; Get plane A
C3/D77D:	2A      	ROL A          ; Roll into A
C3/D77E:	290F    	AND #$0F       ; Blank pixel?
C3/D780:	F010    	BEQ $D792      ; Branch if so
C3/D782:	85E0    	STA $E0        ; Save 0-15 color
C3/D784:	5A      	PHY            ; Save pixels left
C3/D785:	A4E4    	LDY $E4        ; Palette index
C3/D787:	B791    	LDA [$91],Y    ; Palette number
C3/D789:	7A      	PLY            ; Pixels left
C3/D78A:	0A      	ASL A          ; Palette x2
C3/D78B:	0A      	ASL A          ; Palette x4
C3/D78C:	0A      	ASL A          ; Palette x8
C3/D78D:	0A      	ASL A          ; Palette x16
C3/D78E:	29F0    	AND #$F0       ; ...
C3/D790:	05E0    	ORA $E0        ; Add 0-15 color
C3/D792:	9D01B8  	STA $B801,X    ; Set map pixel
C3/D795:	E8      	INX            ; Dst index +1
C3/D796:	E8      	INX            ; Dst index +1
C3/D797:	88      	DEY            ; One less pixel
C3/D798:	D0D7    	BNE $D771      ; Loop till last

Fork: Do tile's next row
C3/D79A:	A4E7    	LDY $E7        ; Source
C3/D79C:	C8      	INY            ; Source +1
C3/D79D:	C8      	INY            ; Source +1
C3/D79E:	84E7    	STY $E7        ; Save changes
C3/D7A0:	C6E6    	DEC $E6        ; One less row
C3/D7A2:	D0BA    	BNE $D75E      ; Loop till last

Fork: Do next tile
C3/D7A4:	C220    	REP #$20       ; 16-bit A
C3/D7A6:	E6E4    	INC $E4        ; Pal index +1
C3/D7A8:	A5E7    	LDA $E7        ; Source
C3/D7AA:	18      	CLC            ; Prepare ADC
C3/D7AB:	691000  	ADC #$0010     ; Skip done data
C3/D7AE:	85E7    	STA $E7        ; Save changes
C3/D7B0:	7B      	TDC            ; Clear A
C3/D7B1:	E220    	SEP #$20       ; 8-bit A
C3/D7B3:	C6ED    	DEC $ED        ; One less tile
C3/D7B5:	D0A3    	BNE $D75A      ; Loop till last
C3/D7B7:	AB      	PLB            ; Restore DB
C3/D7B8:	60      	RTS

Handle credits timing for sideview airship scene
C3/D7B9:	8B      	PHB            ; Save DB
C3/D7BA:	A9C3    	LDA #$C3       ; ...
C3/D7BC:	48      	PHA            ; ...
C3/D7BD:	AB      	PLB            ; ...
C3/D7BE:	A4CF    	LDY $CF        ; Scene timer
C3/D7C0:	C03C00  	CPY #$003C     ; 60?
C3/D7C3:	D003    	BNE $D7C8      ; Exit if not
C3/D7C5:	2003DA  	JSR $DA03      ; Init producer
C3/D7C8:	AB      	PLB            ; Restore DB
C3/D7C9:	38      	SEC            ; Set to requeue
C3/D7CA:	60      	RTS

Handle credits timing for aerial-view airship scene
C3/D7CB:	8B      	PHB            ; Save DB
C3/D7CC:	A9C3    	LDA #$C3       ; ...
C3/D7CE:	48      	PHA            ; ...
C3/D7CF:	AB      	PLB            ; ...
C3/D7D0:	A4CF    	LDY $CF        ; Scene timer
C3/D7D2:	C00A00  	CPY #$000A     ; 10?
C3/D7D5:	D005    	BNE $D7DC      ; Branch if not
C3/D7D7:	200EDA  	JSR $DA0E      ; Init director
C3/D7DA:	803A    	BRA $D816      ; Exit

Fork: Main programmer
C3/D7DC:	C0AE01  	CPY #$01AE     ; 430?
C3/D7DF:	D005    	BNE $D7E6      ; Branch if not
C3/D7E1:	2019DA  	JSR $DA19      ; Init sprites
C3/D7E4:	8030    	BRA $D816      ; Exit

Fork: Graphic director (page 1)
C3/D7E6:	C05203  	CPY #$0352     ; 850?
C3/D7E9:	D005    	BNE $D7F0      ; Branch if not
C3/D7EB:	2024DA  	JSR $DA24      ; Init sprites
C3/D7EE:	8026    	BRA $D816      ; Exit

Fork: Graphic director (page 2)
C3/D7F0:	C0F604  	CPY #$04F6     ; 1270?
C3/D7F3:	D005    	BNE $D7FA      ; Branch if not
C3/D7F5:	202FDA  	JSR $DA2F      ; Init sprites
C3/D7F8:	801C    	BRA $D816      ; Exit

Fork: Music
C3/D7FA:	C09A06  	CPY #$069A     ; 1690?
C3/D7FD:	D005    	BNE $D804      ; Branch if not
C3/D7FF:	203ADA  	JSR $DA3A      ; Init sprites
C3/D802:	8012    	BRA $D816      ; Exit

Fork: Image design
C3/D804:	C03E08  	CPY #$083E     ; 2110?
C3/D807:	D005    	BNE $D80E      ; Branch if not
C3/D809:	2045DA  	JSR $DA45      ; Init sprites
C3/D80C:	8008    	BRA $D816      ; Exit

Fork: Battle planner
C3/D80E:	C0E209  	CPY #$09E2     ; 2530?
C3/D811:	D003    	BNE $D816      ; Exit if not
C3/D813:	2050DA  	JSR $DA50      ; Init sprites
C3/D816:	AB      	PLB            ; Restore DB
C3/D817:	38      	SEC            ; Set to requeue
C3/D818:	60      	RTS

Handle credits timing for boat scene
C3/D819:	8B      	PHB            ; Save DB
C3/D81A:	A9C3    	LDA #$C3       ; ...
C3/D81C:	48      	PHA            ; ...
C3/D81D:	AB      	PLB            ; ...
C3/D81E:	A4CF    	LDY $CF        ; Scene timer
C3/D820:	C00A00  	CPY #$000A     ; 10?
C3/D823:	D005    	BNE $D82A      ; Branch if not
C3/D825:	205BDA  	JSR $DA5B      ; Init field pln
C3/D828:	801C    	BRA $D846      ; Exit

Fork: Event planner
C3/D82A:	C0AE01  	CPY #$01AE     ; 430?
C3/D82D:	D005    	BNE $D834      ; Branch if not
C3/D82F:	2066DA  	JSR $DA66      ; Init sprites
C3/D832:	8012    	BRA $D846      ; Exit

Fork: Effect programmer
C3/D834:	C05203  	CPY #$0352     ; 850?
C3/D837:	D005    	BNE $D83E      ; Branch if not
C3/D839:	2071DA  	JSR $DA71      ; Init sprites
C3/D83C:	8008    	BRA $D846      ; Exit

Fork: Battle programmer
C3/D83E:	C0F604  	CPY #$04F6     ; 1270?
C3/D841:	D003    	BNE $D846      ; Exit if not
C3/D843:	207CDA  	JSR $DA7C      ; Init sprites
C3/D846:	AB      	PLB            ; Restore DB
C3/D847:	38      	SEC            ; Set to requeue
C3/D848:	60      	RTS

Handle credits timing for skimming airship scene
C3/D849:	8B      	PHB            ; Save DB
C3/D84A:	A9C3    	LDA #$C3       ; ...
C3/D84C:	48      	PHA            ; ...
C3/D84D:	AB      	PLB            ; ...
C3/D84E:	A4CF    	LDY $CF        ; Scene timer
C3/D850:	C00A00  	CPY #$000A     ; 10?
C3/D853:	D005    	BNE $D85A      ; Branch if not
C3/D855:	2087DA  	JSR $DA87      ; Init sound prg
C3/D858:	803A    	BRA $D894      ; Exit

Fork: Effect graphic designer
C3/D85A:	C0AE01  	CPY #$01AE     ; 430?
C3/D85D:	D005    	BNE $D864      ; Branch if not
C3/D85F:	2092DA  	JSR $DA92      ; Init sprites
C3/D862:	8030    	BRA $D894      ; Exit

Fork: Field graphic designer (page 1)
C3/D864:	C05203  	CPY #$0352     ; 850?
C3/D867:	D005    	BNE $D86E      ; Branch if not
C3/D869:	209DDA  	JSR $DA9D      ; Init sprites
C3/D86C:	8026    	BRA $D894      ; Exit

Fork: Field graphic designer (page 2)
C3/D86E:	C0F604  	CPY #$04F6     ; 1270?
C3/D871:	D005    	BNE $D878      ; Branch if not
C3/D873:	20A8DA  	JSR $DAA8      ; Init sprites
C3/D876:	801C    	BRA $D894      ; Exit

Fork: Field graphic designer (page 3)
C3/D878:	C09A06  	CPY #$069A     ; 1690?
C3/D87B:	D005    	BNE $D882      ; Branch if not
C3/D87D:	20B3DA  	JSR $DAB3      ; Init sprites
C3/D880:	8012    	BRA $D894      ; Exit

Fork: Monster graphic designer
C3/D882:	C03E08  	CPY #$083E     ; 2110?
C3/D885:	D005    	BNE $D88C      ; Branch if not
C3/D887:	20BEDA  	JSR $DABE      ; Init sprites
C3/D88A:	8008    	BRA $D894      ; Exit

Fork: Object graphic designer
C3/D88C:	C0E209  	CPY #$09E2     ; 2530?
C3/D88F:	D003    	BNE $D894      ; Exit if not
C3/D891:	20C9DA  	JSR $DAC9      ; Init sprites
C3/D894:	AB      	PLB            ; Restore DB
C3/D895:	38      	SEC            ; Set to requeue
C3/D896:	60      	RTS

Handle credits timing for frontview airship scene
C3/D897:	8B      	PHB            ; Save DB
C3/D898:	A9C3    	LDA #$C3       ; ...
C3/D89A:	48      	PHA            ; ...
C3/D89B:	AB      	PLB            ; ...
C3/D89C:	A4CF    	LDY $CF        ; Scene timer
C3/D89E:	C00A00  	CPY #$000A     ; 10?
C3/D8A1:	D005    	BNE $D8A8      ; Branch if not
C3/D8A3:	20D4DA  	JSR $DAD4      ; Init sound eng
C3/D8A6:	803A    	BRA $D8E2      ; Exit

Fork: Sound effect (page 1)
C3/D8A8:	C0AE01  	CPY #$01AE     ; 430?
C3/D8AB:	D005    	BNE $D8B2      ; Branch if not
C3/D8AD:	20DFDA  	JSR $DADF      ; Init sprites
C3/D8B0:	8030    	BRA $D8E2      ; Exit

Fork: Sound effect (page 2)
C3/D8B2:	C05203  	CPY #$0352     ; 850?
C3/D8B5:	D005    	BNE $D8BC      ; Branch if not
C3/D8B7:	20EADA  	JSR $DAEA      ; Init sprites
C3/D8BA:	8026    	BRA $D8E2      ; Exit

Fork: Remake planner, translator
C3/D8BC:	C0F604  	CPY #$04F6     ; 1270?
C3/D8BF:	D005    	BNE $D8C6      ; Branch if not
C3/D8C1:	20F5DA  	JSR $DAF5      ; Init sprites
C3/D8C4:	801C    	BRA $D8E2      ; Exit

Fork: System engineer (page 1)
C3/D8C6:	C09A06  	CPY #$069A     ; 1690?
C3/D8C9:	D005    	BNE $D8D0      ; Branch if not
C3/D8CB:	2000DB  	JSR $DB00      ; Init sprites
C3/D8CE:	8012    	BRA $D8E2      ; Exit

Fork: System engineer (page 2)
C3/D8D0:	C03E08  	CPY #$083E     ; 2110?
C3/D8D3:	D005    	BNE $D8DA      ; Branch if not
C3/D8D5:	200BDB  	JSR $DB0B      ; Init sprites
C3/D8D8:	8008    	BRA $D8E2      ; Exit

Fork: Executive producer
C3/D8DA:	C0E209  	CPY #$09E2     ; 2530?
C3/D8DD:	D003    	BNE $D8E2      ; Exit if not
C3/D8DF:	2016DB  	JSR $DB16      ; Init sprites
C3/D8E2:	AB      	PLB            ; Restore DB
C3/D8E3:	38      	SEC            ; Set to requeue
C3/D8E4:	60      	RTS

Handle credits timing for aerial-view plains scene
C3/D8E5:	8B      	PHB            ; Save DB
C3/D8E6:	A9C3    	LDA #$C3       ; ...
C3/D8E8:	48      	PHA            ; ...
C3/D8E9:	AB      	PLB            ; ...
C3/D8EA:	A4CF    	LDY $CF        ; Scene timer
C3/D8EC:	C0F000  	CPY #$00F0     ; 240?
C3/D8EF:	D005    	BNE $D8F6      ; Branch if not
C3/D8F1:	2021DB  	JSR $DB21      ; Init test coord
C3/D8F4:	803A    	BRA $D930      ; Exit

Fork: Special thanks (page 1)
C3/D8F6:	C0D002  	CPY #$02D0     ; 720?
C3/D8F9:	D005    	BNE $D900      ; Branch if not
C3/D8FB:	202CDB  	JSR $DB2C      ; Init sprites
C3/D8FE:	8030    	BRA $D930      ; Exit

Fork: Special thanks (page 2)
C3/D900:	C0B004  	CPY #$04B0     ; 1200?
C3/D903:	D005    	BNE $D90A      ; Branch if not
C3/D905:	2037DB  	JSR $DB37      ; Init sprites
C3/D908:	8026    	BRA $D930      ; Exit

Fork: Special thanks (page 3)
C3/D90A:	C09006  	CPY #$0690     ; 1680?
C3/D90D:	D005    	BNE $D914      ; Branch if not
C3/D90F:	2042DB  	JSR $DB42      ; Init sprites
C3/D912:	801C    	BRA $D930      ; Exit

Fork: Special thanks (page 4)
C3/D914:	C07008  	CPY #$0870     ; 2160?
C3/D917:	D005    	BNE $D91E      ; Branch if not
C3/D919:	204DDB  	JSR $DB4D      ; Init sprites
C3/D91C:	8012    	BRA $D930      ; Exit

Fork: Special thanks (page 5)
C3/D91E:	C0500A  	CPY #$0A50     ; 2640?
C3/D921:	D005    	BNE $D928      ; Branch if not
C3/D923:	2058DB  	JSR $DB58      ; Init sprites
C3/D926:	8008    	BRA $D930      ; Exit

Fork: Special thanks (page 6)
C3/D928:	C0300C  	CPY #$0C30     ; 3120?
C3/D92B:	D003    	BNE $D930      ; Exit if not
C3/D92D:	2063DB  	JSR $DB63      ; Init sprites
C3/D930:	AB      	PLB            ; Restore DB
C3/D931:	38      	SEC            ; Set to requeue
C3/D932:	60      	RTS

Handle credits timing for rearview airship scene
C3/D933:	8B      	PHB            ; Save DB
C3/D934:	A9C3    	LDA #$C3       ; ...
C3/D936:	48      	PHA            ; ...
C3/D937:	AB      	PLB            ; ...
C3/D938:	A4CF    	LDY $CF        ; Scene timer
C3/D93A:	C03C00  	CPY #$003C     ; 60?
C3/D93D:	D005    	BNE $D944      ; Branch if not
C3/D93F:	206EDB  	JSR $DB6E      ; Init thanks_p7
C3/D942:	8026    	BRA $D96A      ; Exit

Fork: Special thanks (page 8)
C3/D944:	C0E001  	CPY #$01E0     ; 480?
C3/D947:	D005    	BNE $D94E      ; Branch if not
C3/D949:	2079DB  	JSR $DB79      ; Init sprites
C3/D94C:	801C    	BRA $D96A      ; Exit

Fork: Special thanks (page 9)
C3/D94E:	C08403  	CPY #$0384     ; 900?
C3/D951:	D005    	BNE $D958      ; Branch if not
C3/D953:	2084DB  	JSR $DB84      ; Init sprites
C3/D956:	8012    	BRA $D96A      ; Exit

Fork: Special thanks (page 10)
C3/D958:	C02805  	CPY #$0528     ; 1320?
C3/D95B:	D005    	BNE $D962      ; Branch if not
C3/D95D:	208FDB  	JSR $DB8F      ; Init sprites
C3/D960:	8008    	BRA $D96A      ; Exit

Fork: Special thanks (page 11)
C3/D962:	C0CC06  	CPY #$06CC     ; 1740?
C3/D965:	D003    	BNE $D96A      ; Exit if not
C3/D967:	209ADB  	JSR $DB9A      ; Init sprites
C3/D96A:	AB      	PLB            ; Restore DB
C3/D96B:	38      	SEC            ; Set to requeue
C3/D96C:	60      	RTS

Build credits' OAM table for sideview airship scene
C3/D96D:	A2C09D  	LDX #$9DC0     ; Source LBs
C3/D970:	A9C2    	LDA #$C2       ; Source HB
C3/D972:	A00400  	LDY #$0004     ; Sprites: 1
C3/D975:	20F1D9  	JSR $D9F1      ; Do position
C3/D978:	A2449C  	LDX #$9C44     ; Source LBs
C3/D97B:	A9C2    	LDA #$C2       ; Source HB
C3/D97D:	A00800  	LDY #$0008     ; Sprites: 2
C3/D980:	4CFAD9  	JMP $D9FA      ; Do staff

Build credits' OAM table for aerial-view airship scene
C3/D983:	A2C49D  	LDX #$9DC4     ; Source LBs
C3/D986:	A9C2    	LDA #$C2       ; Source HB
C3/D988:	A02800  	LDY #$0028     ; Sprites: 10
C3/D98B:	20F1D9  	JSR $D9F1      ; Do positions
C3/D98E:	A24C9C  	LDX #$9C4C     ; Source LBs
C3/D991:	A9C2    	LDA #$C2       ; Source HB
C3/D993:	A06000  	LDY #$0060     ; Sprites: 24
C3/D996:	4CFAD9  	JMP $D9FA      ; Do staff

Build credits' OAM table for boat scene
C3/D999:	A2EC9D  	LDX #$9DEC     ; Source LBs
C3/D99C:	A9C2    	LDA #$C2       ; Source HB
C3/D99E:	A01800  	LDY #$0018     ; Sprites: 6
C3/D9A1:	20F1D9  	JSR $D9F1      ; Do positions
C3/D9A4:	A2AC9C  	LDX #$9CAC     ; Source LBs
C3/D9A7:	A9C2    	LDA #$C2       ; Source HB
C3/D9A9:	A04000  	LDY #$0040     ; Sprites: 16
C3/D9AC:	4CFAD9  	JMP $D9FA      ; Do staff

Build credits' OAM table for skimming airship scene
C3/D9AF:	A2049E  	LDX #$9E04     ; Source LBs
C3/D9B2:	A9C2    	LDA #$C2       ; Source HB
C3/D9B4:	A02000  	LDY #$0020     ; Sprites: 8
C3/D9B7:	20F1D9  	JSR $D9F1      ; Do positions
C3/D9BA:	A2EC9C  	LDX #$9CEC     ; Source LBs
C3/D9BD:	A9C2    	LDA #$C2       ; Source HB
C3/D9BF:	A06400  	LDY #$0064     ; Sprites: 25
C3/D9C2:	4CFAD9  	JMP $D9FA      ; Do staff

Build credits' OAM table for frontview airship scene
C3/D9C5:	A2249E  	LDX #$9E24     ; Source LBs
C3/D9C8:	A9C2    	LDA #$C2       ; Source HB
C3/D9CA:	A02400  	LDY #$0024     ; Sprites: 9
C3/D9CD:	20F1D9  	JSR $D9F1      ; Do positions
C3/D9D0:	A2509D  	LDX #$9D50     ; Source LBs
C3/D9D3:	A9C2    	LDA #$C2       ; Source HB
C3/D9D5:	A07000  	LDY #$0070     ; Sprites: 28
C3/D9D8:	4CFAD9  	JMP $D9FA      ; Do staff

Build credits' OAM table for aerial-view plains scene
C3/D9DB:	A2489E  	LDX #$9E48     ; Source LBs
C3/D9DE:	A9C2    	LDA #$C2       ; Source HB
C3/D9E0:	A0E400  	LDY #$00E4     ; Sprites: 57
C3/D9E3:	4CF1D9  	JMP $D9F1      ; Build OAM

Build credits' OAM table for rearview airship scene
C3/D9E6:	A22C9F  	LDX #$9F2C     ; Source LBs
C3/D9E9:	A9C2    	LDA #$C2       ; Source HB
C3/D9EB:	A06C00  	LDY #$006C     ; Sprites: 27
C3/D9EE:	4CF1D9  	JMP $D9F1      ; ...

Build OAM table for scene's small credits strings; set source
C3/D9F1:	864A    	STX $4A        ; Set src LBs
C3/D9F3:	854C    	STA $4C        ; Set src HB
C3/D9F5:	844D    	STY $4D        ; Set range end
C3/D9F7:	4CC8DB  	JMP $DBC8      ; Build tables

Build OAM table for scene's large credits strings; set source
C3/D9FA:	864A    	STX $4A        ; Set src LBs
C3/D9FC:	854C    	STA $4C        ; Set src HB
C3/D9FE:	844D    	STY $4D        ; Set range end
C3/DA00:	4CE8DB  	JMP $DBE8      ; Build tables

Initialize credits for producer
C3/DA03:	A00C00  	LDY #$000C     ; Sprites: 3
C3/DA06:	A29498  	LDX #$9894     ; Source LBs
C3/DA09:	A9C2    	LDA #$C2       ; Source HB
C3/DA0B:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for director
C3/DA0E:	A01400  	LDY #$0014     ; Sprites: 5
C3/DA11:	A2A098  	LDX #$98A0     ; Source LBs
C3/DA14:	A9C2    	LDA #$C2       ; Source HB
C3/DA16:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for main programmer
C3/DA19:	A01800  	LDY #$0018     ; Sprites: 6
C3/DA1C:	A2B498  	LDX #$98B4     ; Source LBs
C3/DA1F:	A9C2    	LDA #$C2       ; Source HB
C3/DA21:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for graphic director, page 1
C3/DA24:	A01800  	LDY #$0018     ; Sprites: 6
C3/DA27:	A2CC98  	LDX #$98CC     ; Source LBs
C3/DA2A:	A9C2    	LDA #$C2       ; Source HB
C3/DA2C:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for graphic director, page 2
C3/DA2F:	A01800  	LDY #$0018     ; Sprites: 6
C3/DA32:	A2E498  	LDX #$98E4     ; Source LBs
C3/DA35:	A9C2    	LDA #$C2       ; Source HB
C3/DA37:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for music
C3/DA3A:	A00C00  	LDY #$000C     ; Sprites: 3
C3/DA3D:	A2FC98  	LDX #$98FC     ; Source LBs
C3/DA40:	A9C2    	LDA #$C2       ; Source HB
C3/DA42:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for image design
C3/DA45:	A01000  	LDY #$0010     ; Sprites: 4
C3/DA48:	A20899  	LDX #$9908     ; Source LBs
C3/DA4B:	A9C2    	LDA #$C2       ; Source HB
C3/DA4D:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for battle planner
C3/DA50:	A01800  	LDY #$0018     ; Sprites: 6
C3/DA53:	A21899  	LDX #$9918     ; Source LBs
C3/DA56:	A9C2    	LDA #$C2       ; Source HB
C3/DA58:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for field planner
C3/DA5B:	A02000  	LDY #$0020     ; Sprites: 8
C3/DA5E:	A23099  	LDX #$9930     ; Source LBs
C3/DA61:	A9C2    	LDA #$C2       ; Source HB
C3/DA63:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for event planner
C3/DA66:	A01800  	LDY #$0018     ; Sprites: 6
C3/DA69:	A25099  	LDX #$9950     ; Source LBs
C3/DA6C:	A9C2    	LDA #$C2       ; Source HB
C3/DA6E:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for effect programmer
C3/DA71:	A01800  	LDY #$0018     ; Sprites: 6
C3/DA74:	A26899  	LDX #$9968     ; Source LBs
C3/DA77:	A9C2    	LDA #$C2       ; Source HB
C3/DA79:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for battle programmer
C3/DA7C:	A01000  	LDY #$0010     ; Sprites: 4
C3/DA7F:	A28099  	LDX #$9980     ; Source LBs
C3/DA82:	A9C2    	LDA #$C2       ; Source HB
C3/DA84:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for sound programmer
C3/DA87:	A01000  	LDY #$0010     ; Sprites: 4
C3/DA8A:	A29099  	LDX #$9990     ; Source LBs
C3/DA8D:	A9C2    	LDA #$C2       ; Source HB
C3/DA8F:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for effect graphic designer
C3/DA92:	A01400  	LDY #$0014     ; Sprites: 5
C3/DA95:	A2A099  	LDX #$99A0     ; Source LBs
C3/DA98:	A9C2    	LDA #$C2       ; Source HB
C3/DA9A:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for field graphic designer, page 1
C3/DA9D:	A02400  	LDY #$0024     ; Sprites: 9
C3/DAA0:	A2B499  	LDX #$99B4     ; Source LBs
C3/DAA3:	A9C2    	LDA #$C2       ; Source HB
C3/DAA5:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for field graphic designer, page 2
C3/DAA8:	A02400  	LDY #$0024     ; Sprites: 9
C3/DAAB:	A2D899  	LDX #$99D8     ; Source LBs
C3/DAAE:	A9C2    	LDA #$C2       ; Source HB
C3/DAB0:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for field graphic designer, page 3
C3/DAB3:	A02400  	LDY #$0024     ; Sprites: 9
C3/DAB6:	A2FC99  	LDX #$99FC     ; Source LBs
C3/DAB9:	A9C2    	LDA #$C2       ; Source HB
C3/DABB:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for monster graphic designer
C3/DABE:	A01400  	LDY #$0014     ; Sprites: 5
C3/DAC1:	A2209A  	LDX #$9A20     ; Source LBs
C3/DAC4:	A9C2    	LDA #$C2       ; Source HB
C3/DAC6:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for object graphic designer
C3/DAC9:	A01400  	LDY #$0014     ; Sprites: 5
C3/DACC:	A2349A  	LDX #$9A34     ; Source LBs
C3/DACF:	A9C2    	LDA #$C2       ; Source HB
C3/DAD1:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for sound engineer
C3/DAD4:	A01000  	LDY #$0010     ; Sprites: 4
C3/DAD7:	A2489A  	LDX #$9A48     ; Source LBs
C3/DADA:	A9C2    	LDA #$C2       ; Source HB
C3/DADC:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for sound effect, page 1
C3/DADF:	A01800  	LDY #$0018     ; Sprites: 6
C3/DAE2:	A2589A  	LDX #$9A58     ; Source LBs
C3/DAE5:	A9C2    	LDA #$C2       ; Source HB
C3/DAE7:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for sound effect, page 2
C3/DAEA:	A01800  	LDY #$0018     ; Sprites: 6
C3/DAED:	A2709A  	LDX #$9A70     ; Source LBs
C3/DAF0:	A9C2    	LDA #$C2       ; Source HB
C3/DAF2:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for remake planner and translator
C3/DAF5:	A02400  	LDY #$0024     ; Sprites: 9
C3/DAF8:	A2889A  	LDX #$9A88     ; Source LBs
C3/DAFB:	A9C2    	LDA #$C2       ; Source HB
C3/DAFD:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for system engineer, page 1
C3/DB00:	A01800  	LDY #$0018     ; Sprites: 6
C3/DB03:	A2AC9A  	LDX #$9AAC     ; Source LBs
C3/DB06:	A9C2    	LDA #$C2       ; Source HB
C3/DB08:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for system engineer, page 2
C3/DB0B:	A01800  	LDY #$0018     ; Sprites: 6
C3/DB0E:	A2C49A  	LDX #$9AC4     ; Source LBs
C3/DB11:	A9C2    	LDA #$C2       ; Source HB
C3/DB13:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for executive producer
C3/DB16:	A01800  	LDY #$0018     ; Sprites: 6
C3/DB19:	A2DC9A  	LDX #$9ADC     ; Source LBs
C3/DB1C:	A9C2    	LDA #$C2       ; Source HB
C3/DB1E:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for test coordinator
C3/DB21:	A02800  	LDY #$0028     ; Sprites: 10
C3/DB24:	A2F49A  	LDX #$9AF4     ; Source LBs
C3/DB27:	A9C2    	LDA #$C2       ; Source HB
C3/DB29:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for special thanks, page 1
C3/DB2C:	A02800  	LDY #$0028     ; Sprites: 10
C3/DB2F:	A21C9B  	LDX #$9B1C     ; Source LBs
C3/DB32:	A9C2    	LDA #$C2       ; Source HB
C3/DB34:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for special thanks, page 2
C3/DB37:	A02400  	LDY #$0024     ; Sprites: 9
C3/DB3A:	A2449B  	LDX #$9B44     ; Source LBs
C3/DB3D:	A9C2    	LDA #$C2       ; Source HB
C3/DB3F:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for special thanks, page 3
C3/DB42:	A02000  	LDY #$0020     ; Sprites: 8
C3/DB45:	A2689B  	LDX #$9B68     ; Source LBs
C3/DB48:	A9C2    	LDA #$C2       ; Source HB
C3/DB4A:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for special thanks, page 4
C3/DB4D:	A01800  	LDY #$0018     ; Sprites: 6
C3/DB50:	A2889B  	LDX #$9B88     ; Source LBs
C3/DB53:	A9C2    	LDA #$C2       ; Source HB
C3/DB55:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for special thanks, page 5
C3/DB58:	A01400  	LDY #$0014     ; Sprites: 5
C3/DB5B:	A2A09B  	LDX #$9BA0     ; Source LBs
C3/DB5E:	A9C2    	LDA #$C2       ; Source HB
C3/DB60:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for special thanks, page 6
C3/DB63:	A02400  	LDY #$0024     ; Sprites: 9
C3/DB66:	A2B49B  	LDX #$9BB4     ; Source LBs
C3/DB69:	A9C2    	LDA #$C2       ; Source HB
C3/DB6B:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for special thanks, page 7
C3/DB6E:	A01800  	LDY #$0018     ; Sprites: 6
C3/DB71:	A2D89B  	LDX #$9BD8     ; Source LBs
C3/DB74:	A9C2    	LDA #$C2       ; Source HB
C3/DB76:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for special thanks, page 8
C3/DB79:	A01800  	LDY #$0018     ; Sprites: 6
C3/DB7C:	A2F09B  	LDX #$9BF0     ; Source LBs
C3/DB7F:	A9C2    	LDA #$C2       ; Source HB
C3/DB81:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for special thanks, page 9
C3/DB84:	A01400  	LDY #$0014     ; Sprites: 5
C3/DB87:	A2089C  	LDX #$9C08     ; Source LBs
C3/DB8A:	A9C2    	LDA #$C2       ; Source HB
C3/DB8C:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for special thanks, page 10
C3/DB8F:	A01400  	LDY #$0014     ; Sprites: 5
C3/DB92:	A21C9C  	LDX #$9C1C     ; Source LBs
C3/DB95:	A9C2    	LDA #$C2       ; Source HB
C3/DB97:	4CA5DB  	JMP $DBA5      ; Init sprites

Initialize credits for special thanks, page 11
C3/DB9A:	A01400  	LDY #$0014     ; Sprites: 5
C3/DB9D:	A2309C  	LDX #$9C30     ; Source LBs
C3/DBA0:	A9C2    	LDA #$C2       ; Source HB
C3/DBA2:	4CA5DB  	JMP $DBA5      ; ...

Initialize sprites for current credits strings
C3/DBA5:	84FA    	STY $FA        ; Set src range
C3/DBA7:	86F7    	STX $F7        ; Set src LBs
C3/DBA9:	85F9    	STA $F9        ; Set src HB
C3/DBAB:	A400    	LDY $00        ; Index: 0
C3/DBAD:	C220    	REP #$20       ; 16-bit A
C3/DBAF:	B7F7    	LDA [$F7],Y    ; Anim table ptr
C3/DBB1:	AA      	TAX            ; Save in X
C3/DBB2:	C8      	INY            ; Index +1
C3/DBB3:	C8      	INY            ; Index +1
C3/DBB4:	B7F7    	LDA [$F7],Y    ; Position
C3/DBB6:	8560    	STA $60        ; Memorize it
C3/DBB8:	E220    	SEP #$20       ; 8-bit A
C3/DBBA:	5A      	PHY            ; Save index
C3/DBBB:	9B      	TXY            ; Anim table ptr
C3/DBBC:	2014DC  	JSR $DC14      ; Init sprite
C3/DBBF:	7A      	PLY            ; Table index
C3/DBC0:	C8      	INY            ; Index +1
C3/DBC1:	C8      	INY            ; Index +1
C3/DBC2:	C4FA    	CPY $FA        ; Past range?
C3/DBC4:	D0E7    	BNE $DBAD      ; Loop if not
C3/DBC6:	38      	SEC            ; ...
C3/DBC7:	60      	RTS

Build OAM table for scene's small credits strings
C3/DBC8:	A400    	LDY $00        ; Index: 0
C3/DBCA:	2008DC  	JSR $DC08      ; Get attribs
C3/DBCD:	C220    	REP #$20       ; 16-bit A
C3/DBCF:	B74A    	LDA [$4A],Y    ; Text ptr
C3/DBD1:	AA      	TAX            ; Put in X
C3/DBD2:	C8      	INY            ; Index +1
C3/DBD3:	C8      	INY            ; Index +1
C3/DBD4:	B74A    	LDA [$4A],Y    ; Dest LBs
C3/DBD6:	85E7    	STA $E7        ; Memorize it
C3/DBD8:	C8      	INY            ; Index +1
C3/DBD9:	C8      	INY            ; Index +1
C3/DBDA:	5A      	PHY            ; Save index
C3/DBDB:	A4E7    	LDY $E7        ; Dest LBs
C3/DBDD:	E220    	SEP #$20       ; 8-bit A
C3/DBDF:	20BCDC  	JSR $DCBC      ; Build table
C3/DBE2:	7A      	PLY            ; Pointer index
C3/DBE3:	C44D    	CPY $4D        ; Past range?
C3/DBE5:	D0E3    	BNE $DBCA      ; Loop if not
C3/DBE7:	60      	RTS

Build OAM table for scene's large credits strings
C3/DBE8:	A400    	LDY $00        ; Index: 0
C3/DBEA:	200EDC  	JSR $DC0E      ; Get attribs
C3/DBED:	C220    	REP #$20       ; 16-bit A
C3/DBEF:	B74A    	LDA [$4A],Y    ; Source LBs
C3/DBF1:	AA      	TAX            ; Save in X
C3/DBF2:	C8      	INY            ; Index +1
C3/DBF3:	C8      	INY            ; Index +1
C3/DBF4:	B74A    	LDA [$4A],Y    ; Dest LBs
C3/DBF6:	85E7    	STA $E7        ; Save them
C3/DBF8:	C8      	INY            ; Index +1
C3/DBF9:	C8      	INY            ; Index +1
C3/DBFA:	5A      	PHY            ; Save index
C3/DBFB:	A4E7    	LDY $E7        ; Dest LBs
C3/DBFD:	E220    	SEP #$20       ; 8-bit A
C3/DBFF:	20D1DC  	JSR $DCD1      ; Build table
C3/DC02:	7A      	PLY            ; Pointer index
C3/DC03:	C44D    	CPY $4D        ; Past range?
C3/DC05:	D0E3    	BNE $DBEA      ; Loop if not
C3/DC07:	60      	RTS

Set attribute complements for small credits
C3/DC08:	A2000B  	LDX #$0B00     ; ADR+, pal 5
C3/DC0B:	86F1    	STX $F1        ; Save attribs
C3/DC0D:	60      	RTS

Set attribute complements for large credits
C3/DC0E:	A20009  	LDX #$0900     ; ADR+, pal 4
C3/DC11:	86F1    	STX $F1        ; Set attribs
C3/DC13:	60      	RTS

Initialize sprite for current credit string
C3/DC14:	84F1    	STY $F1        ; Save anim ptr
C3/DC16:	64AF    	STZ $AF        ; Request fade-in
C3/DC18:	A900    	LDA #$00       ; Min slot: 0
C3/DC1A:	A044DC  	LDY #$DC44     ; C3/DC44
C3/DC1D:	207311  	JSR $1173      ; Queue anim fn
C3/DC20:	C220    	REP #$20       ; 16-bit A
C3/DC22:	A5F1    	LDA $F1        ; Anim table ptr
C3/DC24:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/DC28:	A9A401  	LDA #$01A4     ; Frames: 420
C3/DC2B:	9F49337E	STA $7E3349,X  ; Set hide delay
C3/DC2F:	E220    	SEP #$20       ; 8-bit A
C3/DC31:	A97E    	LDA #$7E       ; Bank: 7E
C3/DC33:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/DC37:	A560    	LDA $60        ; X position
C3/DC39:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/DC3D:	A561    	LDA $61        ; Y position
C3/DC3F:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/DC43:	60      	RTS

Animate credit string
C3/DC44:	AA      	TAX            ; Index mode
C3/DC45:	7C48DC  	JMP ($DC48,X)  ; Handle mode

Jump table for the above
C3/DC48:	4CDC    	; Initialize sprite
C3/DC4A:	84DC    	; Sustain sprite

Mode 0: Initialize sprite
C3/DC4C:	A62D    	LDX $2D        ; Queue index
C3/DC4E:	FE4936  	INC $3649,X    ; Mode +1
C3/DC51:	BD4A34  	LDA $344A,X    ; Sprite's Y
C3/DC54:	18      	CLC            ; Prepare ADC
C3/DC55:	6920    	ADC #$20       ; Go 32 px down
C3/DC57:	9D4A34  	STA $344A,X    ; Save changes
C3/DC5A:	C220    	REP #$20       ; 16-bit A
C3/DC5C:	A980FF  	LDA #$FF80     ; V-Spd: -0.5 px
C3/DC5F:	9D4935  	STA $3549,X    ; Set sprite's
C3/DC62:	9EC934  	STZ $34C9,X    ; H-Speed: 0
C3/DC65:	E220    	SEP #$20       ; 8-bit A
C3/DC67:	200612  	JSR $1206      ; Set pose timer
C3/DC6A:	A5AF    	LDA $AF        ; Handled fade-in?
C3/DC6C:	D016    	BNE $DC84      ; Skip it if so
C3/DC6E:	8B      	PHB            ; Save DB
C3/DC6F:	A900    	LDA #$00       ; Bank: 00
C3/DC71:	48      	PHA            ; Put on stack
C3/DC72:	AB      	PLB            ; Set DB to 0
C3/DC73:	A5B4    	LDA $B4        ; Text on clouds?
C3/DC75:	D005    	BNE $DC7C      ; Use blue if so
C3/DC77:	2003C7  	JSR $C703      ; Fade-in: White
C3/DC7A:	8003    	BRA $DC7F      ; Skip a line
C3/DC7C:	202AC7  	JSR $C72A      ; Fade-in: Blue
C3/DC7F:	A901    	LDA #$01       ; Mark as handled
C3/DC81:	85AF    	STA $AF        ; Allow fade-out
C3/DC83:	AB      	PLB            ; Restore DB

Mode 1: Sustain sprite
C3/DC84:	A62D    	LDX $2D        ; Queue index
C3/DC86:	BC4933  	LDY $3349,X    ; Mode expired?
C3/DC89:	F01E    	BEQ $DCA9      ; Delete if so
C3/DC8B:	C06401  	CPY #$0164     ; 356?
C3/DC8E:	D006    	BNE $DC96      ; Scroll if not
C3/DC90:	9E4935  	STZ $3549,X    ; V-Speed LB: 0
C3/DC93:	9E4A35  	STZ $354A,X    ; V-Speed HB: 0
C3/DC96:	C08000  	CPY #$0080     ; 128?
C3/DC99:	F010    	BEQ $DCAB      ; Fade if so
C3/DC9B:	20C0DE  	JSR $DEC0      ; Scroll & OAM
C3/DC9E:	A62D    	LDX $2D        ; Queue index
C3/DCA0:	C220    	REP #$20       ; 16-bit A
C3/DCA2:	DE4933  	DEC $3349,X    ; Timer -1
C3/DCA5:	E220    	SEP #$20       ; 8-bit A
C3/DCA7:	38      	SEC            ; Set to requeue
C3/DCA8:	60      	RTS            ; Exit
C3/DCA9:	18      	CLC            ; Set to dequeue
C3/DCAA:	60      	RTS

Fork: Set to fade all text
C3/DCAB:	A5AF    	LDA $AF        ; Already set?
C3/DCAD:	F0EC    	BEQ $DC9B      ; Skip if so
C3/DCAF:	64AF    	STZ $AF        ; Mark as handled
C3/DCB1:	8B      	PHB            ; Save DB
C3/DCB2:	A900    	LDA #$00       ; Bank: 00
C3/DCB4:	48      	PHA            ; Put on stack
C3/DCB5:	AB      	PLB            ; Set DB to 0
C3/DCB6:	20DCC6  	JSR $C6DC      ; Trigger fade
C3/DCB9:	AB      	PLB            ; Restore DB
C3/DCBA:	80DF    	BRA $DC9B      ; Scroll & OAM

Build OAM table for small credit string
C3/DCBC:	2031DD  	JSR $DD31      ; Set OAM tbl ptr
C3/DCBF:	2025DD  	JSR $DD25      ; Set size, rel X
C3/DCC2:	2002DD  	JSR $DD02      ; Set a char's OAM
C3/DCC5:	9009    	BCC $DCD0      ; Exit if no more
C3/DCC7:	A5E0    	LDA $E0        ; Relative X
C3/DCC9:	18      	CLC            ; Prepare ADC
C3/DCCA:	6908    	ADC #$08       ; Go 8 px right
C3/DCCC:	85E0    	STA $E0        ; Save changes
C3/DCCE:	80F2    	BRA $DCC2      ; Do next letter
C3/DCD0:	60      	RTS

Build OAM table for large credit string
C3/DCD1:	2031DD  	JSR $DD31      ; Set OAM tbl ptr
C3/DCD4:	2025DD  	JSR $DD25      ; Set size, rel X
C3/DCD7:	7B      	TDC            ; ...
C3/DCD8:	A7E7    	LDA [$E7]      ; At terminator?
C3/DCDA:	F025    	BEQ $DD01      ; Exit if so
C3/DCDC:	85E3    	STA $E3        ; Save letter
C3/DCDE:	A5E0    	LDA $E0        ; Relative X
C3/DCE0:	0980    	ORA #$80       ; Add 16x16 flag
C3/DCE2:	97EB    	STA [$EB],Y    ; Set for letter
C3/DCE4:	C8      	INY            ; Index +1
C3/DCE5:	7B      	TDC            ; Relative Y: 0
C3/DCE6:	97EB    	STA [$EB],Y    ; Set letter's
C3/DCE8:	C8      	INY            ; Index +1
C3/DCE9:	7B      	TDC            ; ...
C3/DCEA:	A5E3    	LDA $E3        ; Letter
C3/DCEC:	C221    	REP #$21       ; 16-bit A; C-
C3/DCEE:	65F1    	ADC $F1        ; Add attribs
C3/DCF0:	97EB    	STA [$EB],Y    ; Set attribs
C3/DCF2:	E6E7    	INC $E7        ; Letter +1
C3/DCF4:	C8      	INY            ; Index +1
C3/DCF5:	C8      	INY            ; Index +1
C3/DCF6:	E220    	SEP #$20       ; 8-bit A
C3/DCF8:	A5E0    	LDA $E0        ; Relative X
C3/DCFA:	18      	CLC            ; Prepare ADC
C3/DCFB:	6908    	ADC #$08       ; Go 8 px right
C3/DCFD:	85E0    	STA $E0        ; Save changes
C3/DCFF:	80D6    	BRA $DCD7      ; Do next letter
C3/DD01:	60      	RTS

Build OAM for small credit letter, clear Carry if terminator
C3/DD02:	7B      	TDC            ; ...
C3/DD03:	A7E7    	LDA [$E7]      ; At terminator?
C3/DD05:	F01C    	BEQ $DD23      ; Exit if so
C3/DD07:	85E3    	STA $E3        ; Save letter
C3/DD09:	A5E0    	LDA $E0        ; Relative X
C3/DD0B:	97EB    	STA [$EB],Y    ; Set letter's
C3/DD0D:	C8      	INY            ; Index +1
C3/DD0E:	7B      	TDC            ; Relative Y: 0
C3/DD0F:	97EB    	STA [$EB],Y    ; Set letter's
C3/DD11:	C8      	INY            ; Index +1
C3/DD12:	7B      	TDC            ; ...
C3/DD13:	A5E3    	LDA $E3        ; Letter
C3/DD15:	C221    	REP #$21       ; 16-bit A; C-
C3/DD17:	65F1    	ADC $F1        ; Add attribs
C3/DD19:	97EB    	STA [$EB],Y    ; Set attribs
C3/DD1B:	E6E7    	INC $E7        ; Letter +1
C3/DD1D:	C8      	INY            ; Index +1
C3/DD1E:	C8      	INY            ; Index +1
C3/DD1F:	E220    	SEP #$20       ; 8-bit A
C3/DD21:	38      	SEC            ; End: No
C3/DD22:	60      	RTS            ; Exit
C3/DD23:	18      	CLC            ; End: Yes
C3/DD24:	60      	RTS

Set credit string's size and reset relative X position
C3/DD25:	A400    	LDY $00        ; Index: 0
C3/DD27:	97EB    	STA [$EB],Y    ; Set size
C3/DD29:	C8      	INY            ; Index +1
C3/DD2A:	64E0    	STZ $E0        ; Rel X: 0
C3/DD2C:	64EF    	STZ $EF        ; No use...
C3/DD2E:	64F0    	STZ $F0        ; No use...
C3/DD30:	60      	RTS

Set OAM table pointer for credit string, compute string size
C3/DD31:	86E7    	STX $E7        ; Set src LBs
C3/DD33:	A9C2    	LDA #$C2       ; Bank: C2
C3/DD35:	85E9    	STA $E9        ; Set src HB
C3/DD37:	84EB    	STY $EB        ; Set dst LBs
C3/DD39:	A97E    	LDA #$7E       ; Bank: 7E
C3/DD3B:	85ED    	STA $ED        ; Set dst HB
C3/DD3D:	C221    	REP #$21       ; 16-bit A; C-
C3/DD3F:	A5EB    	LDA $EB        ; Dest LBs
C3/DD41:	690300  	ADC #$0003     ; +3 bytes
C3/DD44:	87EB    	STA [$EB]      ; Set OAM ptr
C3/DD46:	E6EB    	INC $EB        ; Dst LBs +1
C3/DD48:	E6EB    	INC $EB        ; Dst LBs +1
C3/DD4A:	E220    	SEP #$20       ; 8-bit A
C3/DD4C:	A9FE    	LDA #$FE       ; Time: Infinite
C3/DD4E:	87EB    	STA [$EB]      ; Set pose timer
C3/DD50:	E6EB    	INC $EB        ; Dst LBs +1
C3/DD52:	A400    	LDY $00        ; Letter: 1st
C3/DD54:	BB      	TYX            ; Tile count: 0
C3/DD55:	B7E7    	LDA [$E7],Y    ; Letter
C3/DD57:	C8      	INY            ; Point to next
C3/DD58:	C900    	CMP #$00       ; Terminator?
C3/DD5A:	F003    	BEQ $DD5F      ; Exit if so
C3/DD5C:	E8      	INX            ; Tile count +1
C3/DD5D:	80F6    	BRA $DD55      ; Do next letter
C3/DD5F:	8A      	TXA            ; String size
C3/DD60:	60      	RTS

Decompress data
C3/DD61:	84F3    	STY $F3        ; Set src LBs
C3/DD63:	85F5    	STA $F5        ; Set src HB
C3/DD65:	A000C0  	LDY #$C000     ; 7E/C000
C3/DD68:	84F6    	STY $F6        ; Set dst LBs
C3/DD6A:	A97E    	LDA #$7E       ; Bank: 7E
C3/DD6C:	85F8    	STA $F8        ; Set dst HB
C3/DD6E:	226DFFC2	JSL $C2FF6D    ; Unpack data
C3/DD72:	60      	RTS

Clear VRAM
C3/DD73:	C220    	REP #$20       ; 16-bit A
C3/DD75:	7B      	TDC            ; $0000
C3/DD76:	8D1621  	STA $2116      ; Set VRAM ptr
C3/DD79:	A8      	TAY            ; Counter: 0
C3/DD7A:	8D1821  	STA $2118      ; Zero VRAM word
C3/DD7D:	C8      	INY            ; Counter +1
C3/DD7E:	C00080  	CPY #$8000     ; Done all VRAM?
C3/DD81:	D0F7    	BNE $DD7A      ; Loop if not
C3/DD83:	E220    	SEP #$20       ; 8-bit A
C3/DD85:	60      	RTS

Convert and upload graphics for range of font characters
C3/DD86:	8C1621  	STY $2116      ; Set VRAM ptr
C3/DD89:	7B      	TDC            ; Clear A
C3/DD8A:	A8      	TAY            ; Index: 0
C3/DD8B:	C220    	REP #$20       ; 16-bit A
C3/DD8D:	A20800  	LDX #$0008     ; 8-px rows: 8
C3/DD90:	B7E7    	LDA [$E7],Y    ; 8 px, 2 planes
C3/DD92:	8D1821  	STA $2118      ; Save in VRAM
C3/DD95:	C8      	INY            ; Index +1
C3/DD96:	C8      	INY            ; Index +1
C3/DD97:	CA      	DEX            ; One less row
C3/DD98:	D0F6    	BNE $DD90      ; Loop till last
C3/DD9A:	9C1821  	STZ $2118      ; Planes 1C, 1D
C3/DD9D:	9C1821  	STZ $2118      ; Planes 2C, 2D
C3/DDA0:	9C1821  	STZ $2118      ; Planes 3C, 3D
C3/DDA3:	9C1821  	STZ $2118      ; Planes 4C, 4D
C3/DDA6:	9C1821  	STZ $2118      ; Planes 5C, 5D
C3/DDA9:	9C1821  	STZ $2118      ; Planes 6C, 6D
C3/DDAC:	9C1821  	STZ $2118      ; Planes 7C, 7D
C3/DDAF:	9C1821  	STZ $2118      ; Planes 8C, 8D
C3/DDB2:	C4EB    	CPY $EB        ; More tiles?
C3/DDB4:	D0D7    	BNE $DD8D      ; Loop if so
C3/DDB6:	E220    	SEP #$20       ; 8-bit A
C3/DDB8:	60      	RTS

Upload data manually, adjust attributes if tilemap
C3/DDB9:	C220    	REP #$20       ; 16-bit A
C3/DDBB:	98      	TYA            ; VRAM pointer
C3/DDBC:	8D1621  	STA $2116      ; To register
C3/DDBF:	7B      	TDC            ; Clear A
C3/DDC0:	A8      	TAY            ; Index: 0
C3/DDC1:	B7E7    	LDA [$E7],Y    ; Source data
C3/DDC3:	18      	CLC            ; Prepare ADC
C3/DDC4:	65ED    	ADC $ED        ; Add attribs
C3/DDC6:	8D1821  	STA $2118      ; Save in VRAM
C3/DDC9:	C8      	INY            ; Index +1
C3/DDCA:	C8      	INY            ; Index +1
C3/DDCB:	C4EB    	CPY $EB        ; Past range?
C3/DDCD:	D0F2    	BNE $DDC1      ; Loop if not
C3/DDCF:	E220    	SEP #$20       ; 8-bit A
C3/DDD1:	60      	RTS

Build Mode 7 matrix tables for HDMA
C3/DDD2:	8B      	PHB            ; Save DB
C3/DDD3:	A900    	LDA #$00       ; Bank: 00
C3/DDD5:	48      	PHA            ; Put on stack
C3/DDD6:	AB      	PLB            ; Set DB to 0
C3/DDD7:	C220    	REP #$20       ; 16-bit A

Fork: Define scale dividend
C3/DDD9:	A5C3    	LDA $C3        ; Dividend index
C3/DDDB:	2076DE  	JSR $DE76      ; Signed dividend
C3/DDDE:	85E0    	STA $E0        ; ...
C3/DDE0:	85EB    	STA $EB        ; Memorize it
C3/DDE2:	A5E0    	LDA $E0        ; Positive?
C3/DDE4:	1004    	BPL $DDEA      ; Branch if so
C3/DDE6:	49FFFF  	EOR #$FFFF     ; Invert value
C3/DDE9:	1A      	INC A          ; Add 1
C3/DDEA:	85E0    	STA $E0        ; ...
C3/DDEC:	4A      	LSR A          ; Halve it
C3/DDED:	85CB    	STA $CB        ; Save dividend

Fork: Define shear dividend
C3/DDEF:	A5C3    	LDA $C3        ; Dividend index
C3/DDF1:	207ADE  	JSR $DE7A      ; Signed dividend
C3/DDF4:	85E0    	STA $E0        ; ...
C3/DDF6:	85ED    	STA $ED        ; Memorize it
C3/DDF8:	A5E0    	LDA $E0        ; Positive?
C3/DDFA:	1004    	BPL $DE00      ; Branch if so
C3/DDFC:	49FFFF  	EOR #$FFFF     ; Invert value
C3/DDFF:	1A      	INC A          ; Add 1
C3/DE00:	85E0    	STA $E0        ; ...
C3/DE02:	4A      	LSR A          ; Halve it
C3/DE03:	85C9    	STA $C9        ; Save dividend

Fork: Define matrices A and D for two scanlines
C3/DE05:	A0BE01  	LDY #$01BE     ; Scanline: Last
C3/DE08:	A5C5    	LDA $C5        ; Base divisor
C3/DE0A:	85E7    	STA $E7        ; Memorize it
C3/DE0C:	A5CB    	LDA $CB        ; Scale dividend
C3/DE0E:	8D0442  	STA $4204      ; To register
C3/DE11:	E220    	SEP #$20       ; 8-bit A
C3/DE13:	A5E8    	LDA $E8        ; Map factor HB
C3/DE15:	8D0642  	STA $4206      ; Set divisor
C3/DE18:	EA      	NOP
C3/DE19:	EA      	NOP
C3/DE1A:	EA      	NOP
C3/DE1B:	EA      	NOP
C3/DE1C:	EA      	NOP
C3/DE1D:	C220    	REP #$20       ; 16-bit A
C3/DE1F:	A5EB    	LDA $EB        ; Positive mod?
C3/DE21:	1009    	BPL $DE2C      ; Branch if so
C3/DE23:	AD1442  	LDA $4214      ; Quotient
C3/DE26:	49FFFF  	EOR #$FFFF     ; Invert value
C3/DE29:	1A      	INC A          ; Add 1
C3/DE2A:	8003    	BRA $DE2F      ; Skip a line
C3/DE2C:	AD1442  	LDA $4214      ; Quotient
C3/DE2F:	990206  	STA $0602,Y    ; Set line 1
C3/DE32:	990406  	STA $0604,Y    ; Set line 2

Fork: Define matrices B and C for two scanlines
C3/DE35:	A5C9    	LDA $C9        ; Shear dividend
C3/DE37:	8D0442  	STA $4204      ; To register
C3/DE3A:	E220    	SEP #$20       ; 8-bit A
C3/DE3C:	A5E8    	LDA $E8        ; Map factor HB
C3/DE3E:	8D0642  	STA $4206      ; Set divisor
C3/DE41:	EA      	NOP
C3/DE42:	EA      	NOP
C3/DE43:	C220    	REP #$20       ; 16-bit A
C3/DE45:	A5E7    	LDA $E7        ; Matrix divisor
C3/DE47:	38      	SEC            ; Prepare SBC
C3/DE48:	E5C7    	SBC $C7        ; Deduct "angle"
C3/DE4A:	85E7    	STA $E7        ; Save changes
C3/DE4C:	A5ED    	LDA $ED        ; Positive mod?
C3/DE4E:	1009    	BPL $DE59      ; Branch if so
C3/DE50:	AD1442  	LDA $4214      ; Quotient
C3/DE53:	49FFFF  	EOR #$FFFF     ; Invert it
C3/DE56:	1A      	INC A          ; Add 1
C3/DE57:	8003    	BRA $DE5C      ; Skip a line
C3/DE59:	AD1442  	LDA $4214      ; Quotient
C3/DE5C:	99C407  	STA $07C4,Y    ; Set line B1
C3/DE5F:	99C607  	STA $07C6,Y    ; Set line B2
C3/DE62:	49FFFF  	EOR #$FFFF     ; Invert it
C3/DE65:	1A      	INC A          ; Add 1
C3/DE66:	998609  	STA $0986,Y    ; Set line C1
C3/DE69:	998809  	STA $0988,Y    ; Set line C2
C3/DE6C:	88      	DEY            ; Index -1
C3/DE6D:	88      	DEY            ; Index -1
C3/DE6E:	88      	DEY            ; Index -1
C3/DE6F:	88      	DEY            ; Index -1
C3/DE70:	109A    	BPL $DE0C      ; Loop if > 0
C3/DE72:	E220    	SEP #$20       ; 8-bit A
C3/DE74:	AB      	PLB            ; Restore DB
C3/DE75:	60      	RTS

Load animation modifier
C3/DE76:	18      	CLC            ; Prepare ADC
C3/DE77:	694000  	ADC #$0040     ; Index +64
C3/DE7A:	29FF00  	AND #$00FF     ; Clear HB
C3/DE7D:	0A      	ASL A          ; Double it
C3/DE7E:	AA      	TAX            ; Index it
C3/DE7F:	BF6DFCC2	LDA $C2FC6D,X  ; Modifier
C3/DE83:	60      	RTS

Animate linearly moving temporary sprite
C3/DE84:	AA      	TAX            ; Index mode
C3/DE85:	7C88DE  	JMP ($DE88,X)  ; Handle mode

Jump table for the above
C3/DE88:	8CDE    	; Initialize timer
C3/DE8A:	94DE    	; Sustain sprite

Mode 0: Initialize timer
C3/DE8C:	A62D    	LDX $2D        ; Queue index
C3/DE8E:	FE4936  	INC $3649,X    ; Mode +1
C3/DE91:	200612  	JSR $1206      ; Set pose timer

Mode 1: Sustain sprite
C3/DE94:	A62D    	LDX $2D        ; Queue index
C3/DE96:	BC4933  	LDY $3349,X    ; Timer expired?
C3/DE99:	F00E    	BEQ $DEA9      ; Delete if so
C3/DE9B:	20C0DE  	JSR $DEC0      ; Scroll & OAM
C3/DE9E:	A62D    	LDX $2D        ; Queue index
C3/DEA0:	C220    	REP #$20       ; 16-bit A
C3/DEA2:	DE4933  	DEC $3349,X    ; Timer -1
C3/DEA5:	E220    	SEP #$20       ; 8-bit A
C3/DEA7:	38      	SEC            ; Set to requeue
C3/DEA8:	60      	RTS            ; Exit
C3/DEA9:	18      	CLC            ; Set to dequeue
C3/DEAA:	60      	RTS

Animate regular permanent sprite
C3/DEAB:	AA      	TAX            ; Index mode
C3/DEAC:	7CAFDE  	JMP ($DEAF,X)  ; Handle mode

Jump table for the above
C3/DEAF:	B3DE    	; Initialize timer
C3/DEB1:	BBDE    	; Sustain sprite

Mode 0: Initialize timer
C3/DEB3:	A62D    	LDX $2D        ; Queue index
C3/DEB5:	FE4936  	INC $3649,X    ; Mode +1
C3/DEB8:	200612  	JSR $1206      ; Set pose timer

Mode 1: Sustain sprite
C3/DEBB:	20C0DE  	JSR $DEC0      ; Scroll & OAM
C3/DEBE:	38      	SEC            ; Set to requeue
C3/DEBF:	60      	RTS

Scroll sprite and define OAM
C3/DEC0:	A62D    	LDX $2D        ; Queue index
C3/DEC2:	C221    	REP #$21       ; 16-bit A; C-
C3/DEC4:	BDC933  	LDA $33C9,X    ; Fractional X
C3/DEC7:	7DC934  	ADC $34C9,X    ; Add H-Speed
C3/DECA:	9DC933  	STA $33C9,X    ; Save changes
C3/DECD:	BD4934  	LDA $3449,X    ; Fractional Y
C3/DED0:	18      	CLC            ; Prepare ADC
C3/DED1:	7D4935  	ADC $3549,X    ; Add V-Speed
C3/DED4:	9D4934  	STA $3449,X    ; Save changes
C3/DED7:	E220    	SEP #$20       ; ...
C3/DED9:	202112  	JSR $1221      ; Define OAM
C3/DEDC:	60      	RTS

Animate true actor name or "And you"
C3/DEDD:	85E0    	STA $E0        ; Save mode
C3/DEDF:	A547    	LDA $47        ; At 2nd actor?
C3/DEE1:	D006    	BNE $DEE9      ; Delete if so
C3/DEE3:	A5E0    	LDA $E0        ; Anim mode
C3/DEE5:	AA      	TAX            ; Index it
C3/DEE6:	7CEBDE  	JMP ($DEEB,X)  ; Handle mode
C3/DEE9:	18      	CLC            ; Set to dequeue
C3/DEEA:	60      	RTS

Jump table for the above
C3/DEEB:	FFDE    	; Initialize sprite
C3/DEED:	13DF    	; Refresh sprite
C3/DEEF:	1BDF    	; Set to scroll up
C3/DEF1:	13DF    	; Refresh sprite
C3/DEF3:	23DF    	; Stop scrolling
C3/DEF5:	13DF    	; Refresh sprite
C3/DEF7:	2ADF    	; Set to scroll up
C3/DEF9:	13DF    	; Refresh sprite
C3/DEFB:	FDDE    	; Delete sprite

Mode 8: Delete sprite
C3/DEFD:	18      	CLC            ; Set to dequeue
C3/DEFE:	60      	RTS

Mode 0: Initialize sprite
C3/DEFF:	A62D    	LDX $2D        ; Queue index
C3/DF01:	FE4936  	INC $3649,X    ; Mode +1
C3/DF04:	C220    	REP #$20       ; 16-bit A
C3/DF06:	9E4935  	STZ $3549,X    ; V-Speed: 0
C3/DF09:	A585    	LDA $85        ; Scroll delay
C3/DF0B:	9D4933  	STA $3349,X    ; Set mode timer
C3/DF0E:	E220    	SEP #$20       ; 8-bit A
C3/DF10:	200612  	JSR $1206      ; Set pose timer

Modes 1, 3, 5: Refresh sprite
C3/DF13:	204BDF  	JSR $DF4B      ; Mode timer -1
C3/DF16:	20C0DE  	JSR $DEC0      ; Scroll & OAM
C3/DF19:	38      	SEC            ; Set to requeue
C3/DF1A:	60      	RTS

Mode 2: Set to scroll upward 2.5s
C3/DF1B:	A0C0FF  	LDY #$FFC0     ; V-Spd: -0.25 px
C3/DF1E:	A29600  	LDX #$0096     ; Frames: 150
C3/DF21:	800F    	BRA $DF32      ; Set spd, timer

Mode 4: Stop scrolling
C3/DF23:	A400    	LDY $00        ; V-Speed: 0
C3/DF25:	A2F000  	LDX #$00F0     ; Frames: 240
C3/DF28:	8008    	BRA $DF32      ; Set spd, timer

Mode 6: Set to scroll upward 5s
C3/DF2A:	A0C0FF  	LDY #$FFC0     ; V-Spd: -0.25 px
C3/DF2D:	A22C01  	LDX #$012C     ; Frames: 300
C3/DF30:	8000    	BRA $DF32      ; ...

Fork: Change V-Speed and mode timer
C3/DF32:	84E7    	STY $E7        ; Save V-Speed
C3/DF34:	86E9    	STX $E9        ; Save timer
C3/DF36:	A62D    	LDX $2D        ; Queue index
C3/DF38:	C220    	REP #$20       ; 16-bit A
C3/DF3A:	A5E7    	LDA $E7        ; V-Speed
C3/DF3C:	9D4935  	STA $3549,X    ; Set sprite's
C3/DF3F:	A5E9    	LDA $E9        ; Mode timer
C3/DF41:	9D4933  	STA $3349,X    ; Set sprite's
C3/DF44:	E220    	SEP #$20       ; 8-bit A
C3/DF46:	FE4936  	INC $3649,X    ; Mode +1
C3/DF49:	80C8    	BRA $DF13      ; Scroll & OAM

Decrease animation timer, advance mode if expired
C3/DF4B:	A62D    	LDX $2D        ; Queue index
C3/DF4D:	C220    	REP #$20       ; 16-bit A
C3/DF4F:	BD4933  	LDA $3349,X    ; Timer expired?
C3/DF52:	D005    	BNE $DF59      ; Branch if not
C3/DF54:	FE4936  	INC $3649,X    ; Mode +1
C3/DF57:	8003    	BRA $DF5C      ; Skip a line
C3/DF59:	DE4933  	DEC $3349,X    ; Timer -1
C3/DF5C:	E220    	SEP #$20       ; 8-bit A
C3/DF5E:	60      	RTS

Draw, center, and set to upload actor's pseudonym
C3/DF5F:	A400    	LDY $00        ; 1st: Terra
C3/DF61:	84EB    	STY $EB        ; Save slot
C3/DF63:	C220    	REP #$20       ; 16-bit A
C3/DF65:	98      	TYA            ; Actor slot
C3/DF66:	0A      	ASL A          ; Double it
C3/DF67:	AA      	TAX            ; Index it
C3/DF68:	BF6969C3	LDA $C36969,X  ; Actor's address
C3/DF6C:	A8      	TAY            ; Index it
C3/DF6D:	E220    	SEP #$20       ; 8-bit A
C3/DF6F:	B90000  	LDA $0000,Y    ; Actor in slot
C3/DF72:	C528    	CMP $28        ; Matches ours?
C3/DF74:	F023    	BEQ $DF99      ; Proceed if so
C3/DF76:	C221    	REP #$21       ; ...
C3/DF78:	A92500  	LDA #$0025     ; ...
C3/DF7B:	65E7    	ADC $E7        ; ...
C3/DF7D:	85E7    	STA $E7        ; ...
C3/DF7F:	E220    	SEP #$20       ; ...
C3/DF81:	A4EB    	LDY $EB        ; Actor slot
C3/DF83:	C8      	INY            ; Actor slot +1
C3/DF84:	C01000  	CPY #$0010     ; Done all 16?
C3/DF87:	D0D8    	BNE $DF61      ; Loop if not

Fork: Default to "??????" (Gogo, Umaro)
C3/DF89:	A600    	LDX $00        ; Dst index: 0
C3/DF8B:	A9BF    	LDA #$BF       ; Char: "?"
C3/DF8D:	9F899E7E	STA $7E9E89,X  ; Add to string
C3/DF91:	E8      	INX            ; Index +1
C3/DF92:	E00600  	CPX #$0006     ; Done 6 chars?
C3/DF95:	D0F6    	BNE $DF8D      ; Loop if not
C3/DF97:	8010    	BRA $DFA9      ; Skip alt case

Fork: Load actor's name
C3/DF99:	A600    	LDX $00        ; Dst index: 0
C3/DF9B:	B90200  	LDA $0002,Y    ; Letter
C3/DF9E:	9F899E7E	STA $7E9E89,X  ; Add to string
C3/DFA2:	C8      	INY            ; Src index +1
C3/DFA3:	E8      	INX            ; Dst index +1
C3/DFA4:	E00600  	CPX #$0006     ; Done 6 chars?
C3/DFA7:	D0F2    	BNE $DF9B      ; Loop if not
C3/DFA9:	20B3DF  	JSR $DFB3      ; Center name
C3/DFAC:	2011A6  	JSR $A611      ; Build tilemap
C3/DFAF:	203BA6  	JSR $A63B      ; Load graphics
C3/DFB2:	60      	RTS

Center BG3 camera on actor's pseudonym
C3/DFB3:	A600    	LDX $00        ; Letter: 1st
C3/DFB5:	64E0    	STZ $E0        ; Width LB: 0
C3/DFB7:	64E1    	STZ $E1        ; Width HB: 0
C3/DFB9:	7B      	TDC            ; Clear A
C3/DFBA:	BF899E7E	LDA $7E9E89,X  ; Letter
C3/DFBE:	C9FF    	CMP #$FF       ; Terminator?
C3/DFC0:	F015    	BEQ $DFD7      ; Branch if so
C3/DFC2:	DA      	PHX            ; Save index
C3/DFC3:	38      	SEC            ; Prepare SBC
C3/DFC4:	E960    	SBC #$60       ; Use field format
C3/DFC6:	AA      	TAX            ; Index it
C3/DFC7:	BFC08FC4	LDA $C48FC0,X  ; Letter width
C3/DFCB:	18      	CLC            ; Prepare ADC
C3/DFCC:	65E0    	ADC $E0        ; Add to total
C3/DFCE:	85E0    	STA $E0        ; Save total
C3/DFD0:	FA      	PLX            ; Letter index
C3/DFD1:	E8      	INX            ; Point to next
C3/DFD2:	E00600  	CPX #$0006     ; Done all 6?
C3/DFD5:	D0E2    	BNE $DFB9      ; Loop if not
C3/DFD7:	C220    	REP #$20       ; 16-bit A
C3/DFD9:	A5E0    	LDA $E0        ; Text width
C3/DFDB:	4A      	LSR A          ; Halve it
C3/DFDC:	85E0    	STA $E0        ; Save changes
C3/DFDE:	A98000  	LDA #$0080     ; BG3's width / 2
C3/DFE1:	38      	SEC            ; Prepare SBC
C3/DFE2:	E5E0    	SBC $E0        ; Subtract text's
C3/DFE4:	49FFFF  	EOR #$FFFF     ; Invert value
C3/DFE7:	1A      	INC A          ; Add one
C3/DFE8:	853D    	STA $3D        ; Set BG3 X-Pos
C3/DFEA:	E220    	SEP #$20       ; 8-bit A
C3/DFEC:	60      	RTS

Set to temporarily scroll BG1 westward
C3/DFED:	84F3    	STY $F3        ; Save timer
C3/DFEF:	A900    	LDA #$00       ; Min slot: 0
C3/DFF1:	A002E0  	LDY #$E002     ; C3/E002
C3/DFF4:	207311  	JSR $1173      ; Queue anim fn
C3/DFF7:	C220    	REP #$20       ; 16-bit A
C3/DFF9:	A5F3    	LDA $F3        ; Scroll timer
C3/DFFB:	9F49337E	STA $7E3349,X  ; Set mode timer
C3/DFFF:	E220    	SEP #$20       ; 8-bit A
C3/E001:	60      	RTS

Temporarily scroll BG1 westward
C3/E002:	A62D    	LDX $2D        ; Queue index
C3/E004:	C220    	REP #$20       ; 16-bit A
C3/E006:	BD4933  	LDA $3349,X    ; Timer expired?
C3/E009:	F013    	BEQ $E01E      ; Dequeue if so
C3/E00B:	DE4933  	DEC $3349,X    ; Timer -1
C3/E00E:	E220    	SEP #$20       ; 8-bit A
C3/E010:	A523    	LDA $23        ; NMI count
C3/E012:	2903    	AND #$03       ; Now 0-3
C3/E014:	D006    	BNE $E01C      ; Pause if > 0
C3/E016:	C220    	REP #$20       ; 16-bit A
C3/E018:	E635    	INC $35        ; BG1 X-Pos +1
C3/E01A:	E220    	SEP #$20       ; 8-bit A
C3/E01C:	38      	SEC            ; Set to requeue
C3/E01D:	60      	RTS            ; Exit
C3/E01E:	E220    	SEP #$20       ; 8-bit A
C3/E020:	18      	CLC            ; Set to dequeue
C3/E021:	60      	RTS

Create actor's first and last names
C3/E022:	7B      	TDC            ; Clear A
C3/E023:	A528    	LDA $28        ; Actor
C3/E025:	0A      	ASL A          ; x2
C3/E026:	0A      	ASL A          ; x4
C3/E027:	85E0    	STA $E0        ; Memorize it
C3/E029:	A528    	LDA $28        ; Actor
C3/E02B:	0A      	ASL A          ; Double it
C3/E02C:	18      	CLC            ; Prepare ADC
C3/E02D:	65E0    	ADC $E0        ; Now x6
C3/E02F:	AA      	TAX            ; Index it
C3/E030:	C220    	REP #$20       ; 16-bit A
C3/E032:	BFE48DC2	LDA $C28DE4,X  ; Anim ptr A
C3/E036:	854D    	STA $4D        ; Memorize it
C3/E038:	E220    	SEP #$20       ; 8-bit A
C3/E03A:	BFE68DC2	LDA $C28DE6,X  ; Name A's X
C3/E03E:	8553    	STA $53        ; Memorize it
C3/E040:	C220    	REP #$20       ; 16-bit A
C3/E042:	BFE78DC2	LDA $C28DE7,X  ; Anim ptr B
C3/E046:	854F    	STA $4F        ; Memorize it
C3/E048:	E220    	SEP #$20       ; 8-bit A
C3/E04A:	BFE98DC2	LDA $C28DE9,X  ; Name B's X
C3/E04E:	8554    	STA $54        ; Memorize it
C3/E050:	208FE0  	JSR $E08F      ; Queue A's anim
C3/E053:	C220    	REP #$20       ; 16-bit A
C3/E055:	A54D    	LDA $4D        ; Anim table ptr
C3/E057:	9FC9327E	STA $7E32C9,X  ; Set name A's
C3/E05B:	E220    	SEP #$20       ; 8-bit A
C3/E05D:	A9C2    	LDA #$C2       ; Bank: C2
C3/E05F:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/E063:	A553    	LDA $53        ; X position
C3/E065:	9FCA337E	STA $7E33CA,X  ; Set name A's
C3/E069:	A9D0    	LDA #$D0       ; Y: 208
C3/E06B:	9F4A347E	STA $7E344A,X  ; Set name A's
C3/E06F:	208FE0  	JSR $E08F      ; Queue B's anim
C3/E072:	C220    	REP #$20       ; 16-bit A
C3/E074:	A54F    	LDA $4F        ; Anim table ptr
C3/E076:	9FC9327E	STA $7E32C9,X  ; Set name B's
C3/E07A:	E220    	SEP #$20       ; 8-bit A
C3/E07C:	A9C2    	LDA #$C2       ; Bank: C2
C3/E07E:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/E082:	A554    	LDA $54        ; X position
C3/E084:	9FCA337E	STA $7E33CA,X  ; Set name B's
C3/E088:	A9D0    	LDA #$D0       ; Y: 208
C3/E08A:	9F4A347E	STA $7E344A,X  ; Set name B's
C3/E08E:	60      	RTS

Queue true actor name or "And you"
C3/E08F:	A901    	LDA #$01       ; Min slot: 8
C3/E091:	A0DDDE  	LDY #$DEDD     ; C3/DEDD
C3/E094:	207311  	JSR $1173      ; Queue anim fn
C3/E097:	60      	RTS

Create "And you"
C3/E098:	208FE0  	JSR $E08F      ; Queue anim fn
C3/E09B:	C220    	REP #$20       ; 16-bit A
C3/E09D:	A9ABF8  	LDA #$F8AB     ; Anim table ptr
C3/E0A0:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/E0A4:	E220    	SEP #$20       ; 8-bit A
C3/E0A6:	A9CF    	LDA #$CF       ; Bank: CF
C3/E0A8:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/E0AC:	A968    	LDA #$68       ; X: 104
C3/E0AE:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/E0B2:	A9D0    	LDA #$D0       ; Y: 208
C3/E0B4:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/E0B8:	60      	RTS

Initialize font, BG, and register data for actor scene
C3/E0B9:	8528    	STA $28        ; Set actor slot
C3/E0BB:	228CCED4	JSL $D4CE8C    ; Init registers
C3/E0BF:	203C6A  	JSR $6A3C      ; Clear BG3 A
C3/E0C2:	20286A  	JSR $6A28      ; Clear BG2 A
C3/E0C5:	A9C3    	LDA #$C3       ; Src HB
C3/E0C7:	A04930  	LDY #$3049     ; To BG pal 0
C3/E0CA:	A2F410  	LDX #$10F4     ; Src LBs
C3/E0CD:	208E0F  	JSR $0F8E      ; BGP0: Black
C3/E0D0:	A9C3    	LDA #$C3       ; Src HB
C3/E0D2:	A06930  	LDY #$3069     ; To BG pal 1
C3/E0D5:	A2F410  	LDX #$10F4     ; C3/10F4
C3/E0D8:	208E0F  	JSR $0F8E      ; BGP1: Black
C3/E0DB:	A9C3    	LDA #$C3       ; Src HB
C3/E0DD:	A08930  	LDY #$3089     ; To BG pal 2
C3/E0E0:	A2F410  	LDX #$10F4     ; Src LBs
C3/E0E3:	208E0F  	JSR $0F8E      ; BGP2: Black
C3/E0E6:	A9C3    	LDA #$C3       ; Src HB
C3/E0E8:	A0E930  	LDY #$30E9     ; To BG pal 5
C3/E0EB:	A2F410  	LDX #$10F4     ; Src LBs
C3/E0EE:	208E0F  	JSR $0F8E      ; BGP5: Black
C3/E0F1:	A9C3    	LDA #$C3       ; Src HB
C3/E0F3:	A00931  	LDY #$3109     ; To BG pal 6
C3/E0F6:	A2F410  	LDX #$10F4     ; Src LBs
C3/E0F9:	208E0F  	JSR $0F8E      ; BGP6: Black
C3/E0FC:	A9C3    	LDA #$C3       ; Src HB
C3/E0FE:	A04931  	LDY #$3149     ; To OBJ pal 0
C3/E101:	A2F410  	LDX #$10F4     ; Src LBs
C3/E104:	208E0F  	JSR $0F8E      ; OBP0: Black
C3/E107:	A9C3    	LDA #$C3       ; Src HB
C3/E109:	A06931  	LDY #$3169     ; To OBJ pal 1
C3/E10C:	A2F410  	LDX #$10F4     ; Src LBs
C3/E10F:	208E0F  	JSR $0F8E      ; OBP1: Black
C3/E112:	A9C3    	LDA #$C3       ; Src HB
C3/E114:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/E117:	A2F410  	LDX #$10F4     ; Src LBs
C3/E11A:	208E0F  	JSR $0F8E      ; OBP4: Black
C3/E11D:	2074EE  	JSR $EE74      ; Load big font
C3/E120:	4C90EE  	JMP $EE90      ; And BG GFX/map

Create and upload text for actor scene, unblank screen
C3/E123:	6447    	STZ $47        ; Erase name: N
C3/E125:	2097E8  	JSR $E897      ; Create "as"
C3/E128:	A92C    	LDA #$2C       ; Palette 3
C3/E12A:	8529    	STA $29        ; No use...
C3/E12C:	205FDF  	JSR $DF5F      ; Create alias
C3/E12F:	A901    	LDA #$01       ; CGRAM: Freeze
C3/E131:	1445    	TRB $45        ; Set NMI flag
C3/E133:	20AC14  	JSR $14AC      ; Upload alias
C3/E136:	A901    	LDA #$01       ; CGRAM: Refresh
C3/E138:	0445    	TSB $45        ; Set NMI flag
C3/E13A:	2022E0  	JSR $E022      ; Create true name
C3/E13D:	2021EF  	JSR $EF21      ; Queue BG1+BG3a
C3/E140:	E626    	INC $26        ; Scene mode +1
C3/E142:	4C75C6  	JMP $C675      ; Set brightness

Set to fade BG elements for actor scene (also final airship's)
C3/E145:	A9C3    	LDA #$C3       ; C3/10F4
C3/E147:	85ED    	STA $ED        ; Set src HB
C3/E149:	A904    	LDA #$04       ; Slowness: 4
C3/E14B:	A0E930  	LDY #$30E9     ; To BG pal 5
C3/E14E:	84E7    	STY $E7        ; ...
C3/E150:	A2F410  	LDX #$10F4     ; Black palette
C3/E153:	86EB    	STX $EB        ; ...
C3/E155:	20AA0F  	JSR $0FAA      ; Do tabletop
C3/E158:	A9C3    	LDA #$C3       ; ...
C3/E15A:	85ED    	STA $ED        ; ...
C3/E15C:	A904    	LDA #$04       ; Slowness: 4
C3/E15E:	A00931  	LDY #$3109     ; To BG pal 6
C3/E161:	84E7    	STY $E7        ; ...
C3/E163:	A2F410  	LDX #$10F4     ; Black palette
C3/E166:	86EB    	STX $EB        ; ...
C3/E168:	20AA0F  	JSR $0FAA      ; Do overlay
C3/E16B:	A9C3    	LDA #$C3       ; C3/10F4
C3/E16D:	85ED    	STA $ED        ; Set src HB
C3/E16F:	A904    	LDA #$04       ; Slowness: 4
C3/E171:	A06930  	LDY #$3069     ; To BG pal 1
C3/E174:	84E7    	STY $E7        ; ...
C3/E176:	A2F410  	LDX #$10F4     ; Black palette
C3/E179:	86EB    	STX $EB        ; ...
C3/E17B:	20AA0F  	JSR $0FAA      ; Do book, etc.
C3/E17E:	A9C3    	LDA #$C3       ; ...
C3/E180:	85ED    	STA $ED        ; ...
C3/E182:	A904    	LDA #$04       ; Slowness: 4
C3/E184:	A08930  	LDY #$3089     ; To BG pal 2
C3/E187:	84E7    	STY $E7        ; ...
C3/E189:	A2F410  	LDX #$10F4     ; Black palette
C3/E18C:	86EB    	STX $EB        ; ...
C3/E18E:	20AA0F  	JSR $0FAA      ; Do bones, etc.
C3/E191:	60      	RTS

Set to fade in BG elements for actor scene
C3/E192:	A9C2    	LDA #$C2       ; Bank: C2
C3/E194:	85ED    	STA $ED        ; Set src HB
C3/E196:	A902    	LDA #$02       ; Slowness: 2
C3/E198:	A06930  	LDY #$3069     ; To BG pal 1
C3/E19B:	84E7    	STY $E7        ; ...
C3/E19D:	A27C96  	LDX #$967C     ; C2/967C
C3/E1A0:	86EB    	STX $EB        ; ...
C3/E1A2:	20AA0F  	JSR $0FAA      ; Do book, etc.
C3/E1A5:	A9C2    	LDA #$C2       ; ...
C3/E1A7:	85ED    	STA $ED        ; ...
C3/E1A9:	A902    	LDA #$02       ; Slowness: 2
C3/E1AB:	A08930  	LDY #$3089     ; To BG pal 2
C3/E1AE:	84E7    	STY $E7        ; ...
C3/E1B0:	A29C96  	LDX #$969C     ; C2/969C
C3/E1B3:	86EB    	STX $EB        ; ...
C3/E1B5:	20AA0F  	JSR $0FAA      ; Do bones, etc.
C3/E1B8:	A9C2    	LDA #$C2       ; ...
C3/E1BA:	85ED    	STA $ED        ; ...
C3/E1BC:	A902    	LDA #$02       ; Slowness: 2
C3/E1BE:	A0E930  	LDY #$30E9     ; To BG pal 5
C3/E1C1:	84E7    	STY $E7        ; ...
C3/E1C3:	A2DC96  	LDX #$96DC     ; C2/96DC
C3/E1C6:	86EB    	STX $EB        ; ...
C3/E1C8:	20AA0F  	JSR $0FAA      ; Do tabletop
C3/E1CB:	A9C2    	LDA #$C2       ; ...
C3/E1CD:	85ED    	STA $ED        ; ...
C3/E1CF:	A902    	LDA #$02       ; Slowness: 2
C3/E1D1:	A00931  	LDY #$3109     ; To BG pal 6
C3/E1D4:	84E7    	STY $E7        ; ...
C3/E1D6:	A2FC96  	LDX #$96FC     ; C2/96FC
C3/E1D9:	86EB    	STX $EB        ; ...
C3/E1DB:	20AA0F  	JSR $0FAA      ; Do overlay
C3/E1DE:	60      	RTS

Set to fade in actor's pseudonym and "as"
C3/E1DF:	A9C2    	LDA #$C2       ; Bank: C2
C3/E1E1:	85ED    	STA $ED        ; Set src HB
C3/E1E3:	A904    	LDA #$04       ; Slowness: 4
C3/E1E5:	A04930  	LDY #$3049     ; To BG pal 0
C3/E1E8:	84E7    	STY $E7        ; ...
C3/E1EA:	A25497  	LDX #$9754     ; C2/9754
C3/E1ED:	86EB    	STX $EB        ; ...
C3/E1EF:	20AA0F  	JSR $0FAA      ; Handle name
C3/E1F2:	A9C2    	LDA #$C2       ; ...
C3/E1F4:	85ED    	STA $ED        ; ...
C3/E1F6:	A904    	LDA #$04       ; Slowness: 4
C3/E1F8:	A06931  	LDY #$3169     ; To OBJ pal 1
C3/E1FB:	84E7    	STY $E7        ; ...
C3/E1FD:	A25497  	LDX #$9754     ; C2/9754
C3/E200:	86EB    	STX $EB        ; ...
C3/E202:	20AA0F  	JSR $0FAA      ; Handle "as"
C3/E205:	60      	RTS

Set to scroll and fade actor alias, fade "as", fade in true name
C3/E206:	64CF    	STZ $CF        ; Scroll timer LB
C3/E208:	64D0    	STZ $D0        ; Scroll timer HB
C3/E20A:	A0F000  	LDY #$00F0     ; Frames: 240
C3/E20D:	8464    	STY $64        ; Set scroll limit
C3/E20F:	A900    	LDA #$00       ; Min slot: 0
C3/E211:	A0B6D1  	LDY #$D1B6     ; C3/D1B6
C3/E214:	207311  	JSR $1173      ; Queue scroll fn
C3/E217:	2041E2  	JSR $E241      ; Fade pseudonym
C3/E21A:	A9C3    	LDA #$C3       ; ...
C3/E21C:	85ED    	STA $ED        ; ...
C3/E21E:	A904    	LDA #$04       ; Slowness: 4
C3/E220:	A06931  	LDY #$3169     ; To OBJ pal 1
C3/E223:	84E7    	STY $E7        ; ...
C3/E225:	A2F410  	LDX #$10F4     ; Black palette
C3/E228:	86EB    	STX $EB        ; ...
C3/E22A:	20AA0F  	JSR $0FAA      ; Fade "as"
C3/E22D:	A9C2    	LDA #$C2       ; Bank: C2
C3/E22F:	85ED    	STA $ED        ; Set src HB
C3/E231:	A904    	LDA #$04       ; Slowness: 4
C3/E233:	A04931  	LDY #$3149     ; To OBJ pal 0
C3/E236:	84E7    	STY $E7        ; ...
C3/E238:	A25497  	LDX #$9754     ; C2/9754
C3/E23B:	86EB    	STX $EB        ; ...
C3/E23D:	20AA0F  	JSR $0FAA      ; Fade in true name
C3/E240:	60      	RTS

Set to fade background palette 0
C3/E241:	A9C3    	LDA #$C3       ; C3/10F4
C3/E243:	85ED    	STA $ED        ; Set src HB
C3/E245:	A904    	LDA #$04       ; Slowness: 4
C3/E247:	A04930  	LDY #$3049     ; To BG pal 0
C3/E24A:	84E7    	STY $E7        ; ...
C3/E24C:	A2F410  	LDX #$10F4     ; Black palette
C3/E24F:	86EB    	STX $EB        ; ...
C3/E251:	20AA0F  	JSR $0FAA      ; Queue fade-out
C3/E254:	60      	RTS

Set to fade sprite palette 0
C3/E255:	A9C3    	LDA #$C3       ; C3/10F4
C3/E257:	85ED    	STA $ED        ; Set src HB
C3/E259:	A904    	LDA #$04       ; Slowness: 4
C3/E25B:	A04931  	LDY #$3149     ; To OBJ pal 0
C3/E25E:	84E7    	STY $E7        ; ...
C3/E260:	A2F410  	LDX #$10F4     ; Black palette
C3/E263:	86EB    	STX $EB        ; ...
C3/E265:	20AA0F  	JSR $0FAA      ; Queue fade-out
C3/E268:	60      	RTS

Set to return to event script
C3/E269:	A9FF    	LDA #$FF       ; Null value
C3/E26B:	8526    	STA $26        ; Next: Exit
C3/E26D:	60      	RTS

28: Start Shadow's scene
C3/E26E:	A903    	LDA #$03       ; Actor: Shadow
C3/E270:	20B9E0  	JSR $E0B9      ; Init BGs/font
C3/E273:	2048EF  	JSR $EF48      ; Upload apple
C3/E276:	2092E1  	JSR $E192      ; Fade in BGs
C3/E279:	208AE2  	JSR $E28A      ; Fade in apple
C3/E27C:	203FE8  	JSR $E83F      ; Scroll table
C3/E27F:	A07800  	LDY #$0078     ; Fade-in delay
C3/E282:	8420    	STY $20        ; Set for alias
C3/E284:	20B3E9  	JSR $E9B3      ; Create apple
C3/E287:	4C23E1  	JMP $E123      ; Create text

Set to fade in non-glint sprites on table
C3/E28A:	A9C2    	LDA #$C2       ; Bank: C2
C3/E28C:	85ED    	STA $ED        ; Set src HB
C3/E28E:	A902    	LDA #$02       ; Slowness: 2
C3/E290:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/E293:	84E7    	STY $E7        ; ...
C3/E295:	A27497  	LDX #$9774     ; C2/9774
C3/E298:	86EB    	STX $EB        ; ...
C3/E29A:	20AA0F  	JSR $0FAA      ; Queue fade-in
C3/E29D:	60      	RTS

Set to fade sprite palette 4
C3/E29E:	A9C3    	LDA #$C3       ; C3/10F4
C3/E2A0:	85ED    	STA $ED        ; Set src HB
C3/E2A2:	A904    	LDA #$04       ; Slowness: 4
C3/E2A4:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/E2A7:	84E7    	STY $E7        ; ...
C3/E2A9:	A2F410  	LDX #$10F4     ; Black palette
C3/E2AC:	86EB    	STX $EB        ; ...
C3/E2AE:	20AA0F  	JSR $0FAA      ; Queue fade-out
C3/E2B1:	60      	RTS

29: Fade in "Shadow as"
C3/E2B2:	A420    	LDY $20        ; Delay expired?
C3/E2B4:	D00A    	BNE $E2C0      ; Exit if not
C3/E2B6:	E626    	INC $26        ; Next: C3/E2C1
C3/E2B8:	20DFE1  	JSR $E1DF      ; Queue fade-in
C3/E2BB:	A0F000  	LDY #$00F0     ; Switch delay
C3/E2BE:	8420    	STY $20        ; Set for names
C3/E2C0:	60      	RTS

2A: Switch Shadow's names
C3/E2C1:	A420    	LDY $20        ; Delay expired?
C3/E2C3:	D00A    	BNE $E2CF      ; Exit if not
C3/E2C5:	E626    	INC $26        ; Next: C3/E2D0
C3/E2C7:	2006E2  	JSR $E206      ; Switch names
C3/E2CA:	A06801  	LDY #$0168     ; Fade/Pan delay
C3/E2CD:	8420    	STY $20        ; Set for below
C3/E2CF:	60      	RTS

2B: Fade all but Shadow's name
C3/E2D0:	A420    	LDY $20        ; Delay expired?
C3/E2D2:	D012    	BNE $E2E6      ; Exit if not
C3/E2D4:	A938    	LDA #$38       ; C3/E2E7
C3/E2D6:	8526    	STA $26        ; Next: Fd name
C3/E2D8:	A07800  	LDY #$0078     ; Fade delay
C3/E2DB:	8420    	STY $20        ; Set for name
C3/E2DD:	2045E1  	JSR $E145      ; Fade BGs
C3/E2E0:	209EE2  	JSR $E29E      ; Fade apple
C3/E2E3:	2045E8  	JSR $E845      ; Scroll table
C3/E2E6:	60      	RTS

38: Fade actor's true name
C3/E2E7:	A420    	LDY $20        ; Delay expired?
C3/E2E9:	D00C    	BNE $E2F7      ; Exit if not
C3/E2EB:	A07800  	LDY #$0078     ; Frames: 120
C3/E2EE:	8420    	STY $20        ; Set exit delay
C3/E2F0:	A901    	LDA #$01       ; C3/C5D4
C3/E2F2:	8526    	STA $26        ; Next: Exit
C3/E2F4:	2055E2  	JSR $E255      ; Queue fade-out
C3/E2F7:	60      	RTS

32: Start Cyan's scene
C3/E2F8:	A902    	LDA #$02       ; Actor: Cyan
C3/E2FA:	20B9E0  	JSR $E0B9      ; Init BGs/font
C3/E2FD:	2068EF  	JSR $EF68      ; Draw sword; GFX
C3/E300:	2092E1  	JSR $E192      ; Fade in BGs
C3/E303:	2068E4  	JSR $E468      ; Fade in glint
C3/E306:	A0B8FF  	LDY #$FFB8     ; X: -72 = 440
C3/E309:	8435    	STY $35        ; Set BG1 X-Pos
C3/E30B:	2039E8  	JSR $E839      ; Scroll table
C3/E30E:	2036EC  	JSR $EC36      ; Queue glints
C3/E311:	A07800  	LDY #$0078     ; Fade-in delay
C3/E314:	8420    	STY $20        ; Set for alias
C3/E316:	4C23E1  	JMP $E123      ; Create text

33: Fade in "Cyan as"
C3/E319:	A420    	LDY $20        ; Delay expired?
C3/E31B:	D00A    	BNE $E327      ; Exit if not
C3/E31D:	E626    	INC $26        ; Next: C3/E328
C3/E31F:	20DFE1  	JSR $E1DF      ; Queue fade-in
C3/E322:	A0F000  	LDY #$00F0     ; Switch delay
C3/E325:	8420    	STY $20        ; Set for names
C3/E327:	60      	RTS

34: Switch Cyan's names
C3/E328:	A420    	LDY $20        ; Delay expired?
C3/E32A:	D00A    	BNE $E336      ; Exit if not
C3/E32C:	E626    	INC $26        ; Next: C3/E337
C3/E32E:	2006E2  	JSR $E206      ; Switch names
C3/E331:	A06801  	LDY #$0168     ; Frames: 360
C3/E334:	8420    	STY $20        ; Set fade delay
C3/E336:	60      	RTS

35: Fade all but Cyan's name
C3/E337:	A420    	LDY $20        ; Delay expired?
C3/E339:	D00F    	BNE $E34A      ; Exit if not
C3/E33B:	A938    	LDA #$38       ; C3/E2E7
C3/E33D:	8526    	STA $26        ; Next: Fd name
C3/E33F:	A07800  	LDY #$0078     ; Fade delay
C3/E342:	8420    	STY $20        ; Set for name
C3/E344:	2045E1  	JSR $E145      ; Fade BGs
C3/E347:	209EE2  	JSR $E29E      ; Fade glint
C3/E34A:	60      	RTS

40: Start Edgar and Sabin's scene
C3/E34B:	A904    	LDA #$04       ; Actor: Edgar
C3/E34D:	20B9E0  	JSR $E0B9      ; Init BGs/font
C3/E350:	207EEF  	JSR $EF7E      ; Upload coin
C3/E353:	2092E1  	JSR $E192      ; Fade in BGs
C3/E356:	208AE2  	JSR $E28A      ; Fade in coin
C3/E359:	2024EC  	JSR $EC24      ; Queue coin fn
C3/E35C:	A07800  	LDY #$0078     ; Fade-in delay
C3/E35F:	8420    	STY $20        ; Set for name
C3/E361:	4C23E1  	JMP $E123      ; Create text

41: Fade in "Edgar as"
C3/E364:	A420    	LDY $20        ; Delay expired?
C3/E366:	D00A    	BNE $E372      ; Exit if not
C3/E368:	E626    	INC $26        ; Next: C3/E373
C3/E36A:	20DFE1  	JSR $E1DF      ; Queue fade-in
C3/E36D:	A0F000  	LDY #$00F0     ; Switch delay
C3/E370:	8420    	STY $20        ; Set for alias
C3/E372:	60      	RTS

42: Switch Edgar's names
C3/E373:	A420    	LDY $20        ; Delay expired?
C3/E375:	D00A    	BNE $E381      ; Exit if not
C3/E377:	E626    	INC $26        ; Next: C3/E382
C3/E379:	2006E2  	JSR $E206      ; Switch names
C3/E37C:	A0F000  	LDY #$00F0     ; Intro delay
C3/E37F:	8420    	STY $20        ; Set for Sabin
C3/E381:	60      	RTS

43: Show Sabin's name, fade Edgar's
C3/E382:	A420    	LDY $20        ; Delay expired?
C3/E384:	D01B    	BNE $E3A1      ; Exit if not
C3/E386:	A400    	LDY $00        ; ...
C3/E388:	843F    	STY $3F        ; BG3 Y-Pos: 0
C3/E38A:	A905    	LDA #$05       ; Actor: Sabin
C3/E38C:	8528    	STA $28        ; Set actor slot
C3/E38E:	2097E8  	JSR $E897      ; Create "as"
C3/E391:	2055E2  	JSR $E255      ; Fade Edgar
C3/E394:	205FDF  	JSR $DF5F      ; Create Sabin
C3/E397:	20DFE1  	JSR $E1DF      ; Fade in Sabin
C3/E39A:	E626    	INC $26        ; Next: C3/E3A2
C3/E39C:	A07800  	LDY #$0078     ; Removal delay
C3/E39F:	8420    	STY $20        ; Set for Edgar
C3/E3A1:	60      	RTS

44: Delete Edgar's name
C3/E3A2:	A420    	LDY $20        ; Delay expired?
C3/E3A4:	D00B    	BNE $E3B1      ; Exit if not
C3/E3A6:	A901    	LDA #$01       ; Erase name: Y
C3/E3A8:	8547    	STA $47        ; Set sprite flag
C3/E3AA:	E626    	INC $26        ; Next: C3/E3B2
C3/E3AC:	A0B400  	LDY #$00B4     ; Switch delay
C3/E3AF:	8420    	STY $20        ; Set for Sabin
C3/E3B1:	60      	RTS

45: Switch Sabin's names
C3/E3B2:	A420    	LDY $20        ; Delay expired?
C3/E3B4:	D016    	BNE $E3CC      ; Exit if not
C3/E3B6:	A94F    	LDA #$4F       ; C3/E3CD
C3/E3B8:	8526    	STA $26        ; Next: Fade BG
C3/E3BA:	A0B400  	LDY #$00B4     ; Frames: 180
C3/E3BD:	8420    	STY $20        ; Set fade delay
C3/E3BF:	6447    	STZ $47        ; Erase name: N
C3/E3C1:	A01400  	LDY #$0014     ; Frames: 20
C3/E3C4:	8485    	STY $85        ; Set scroll delay
C3/E3C6:	2022E0  	JSR $E022      ; Create true name
C3/E3C9:	2006E2  	JSR $E206      ; Switch names
C3/E3CC:	60      	RTS

4F: Fade all but Sabin's name
C3/E3CD:	A420    	LDY $20        ; Delay expired?
C3/E3CF:	D00F    	BNE $E3E0      ; Exit if not
C3/E3D1:	A938    	LDA #$38       ; C3/E2E7
C3/E3D3:	8526    	STA $26        ; Next: Fd name
C3/E3D5:	A07800  	LDY #$0078     ; Fade delay
C3/E3D8:	8420    	STY $20        ; Set for name
C3/E3DA:	2045E1  	JSR $E145      ; Fade BGs
C3/E3DD:	209EE2  	JSR $E29E      ; Fade coin
C3/E3E0:	60      	RTS

3C: Start Mog's scene
C3/E3E1:	A90A    	LDA #$0A       ; Actor: Mog
C3/E3E3:	20B9E0  	JSR $E0B9      ; Init BGs/font
C3/E3E6:	20A2EF  	JSR $EFA2      ; Draw tree; GFX
C3/E3E9:	2092E1  	JSR $E192      ; Fade in BGs
C3/E3EC:	208AE2  	JSR $E28A      ; Fade in sprites
C3/E3EF:	203FE8  	JSR $E83F      ; Scroll table
C3/E3F2:	2024EA  	JSR $EA24      ; Create sprites
C3/E3F5:	A07800  	LDY #$0078     ; Fade-in delay
C3/E3F8:	8420    	STY $20        ; Set for name
C3/E3FA:	4C23E1  	JMP $E123      ; Create text

3D: Fade in "Mog as"
C3/E3FD:	A420    	LDY $20        ; Delay expired?
C3/E3FF:	D00A    	BNE $E40B      ; Exit if not
C3/E401:	E626    	INC $26        ; Next: C3/E40C
C3/E403:	20DFE1  	JSR $E1DF      ; Queue fade-in
C3/E406:	A0F000  	LDY #$00F0     ; Switch delay
C3/E409:	8420    	STY $20        ; Set for names
C3/E40B:	60      	RTS

3E: Switch Mog's names
C3/E40C:	A420    	LDY $20        ; Delay expired?
C3/E40E:	D00A    	BNE $E41A      ; Exit if not
C3/E410:	E626    	INC $26        ; Next: C3/E41B
C3/E412:	2006E2  	JSR $E206      ; Switch names
C3/E415:	A06801  	LDY #$0168     ; Frames: 360
C3/E418:	8420    	STY $20        ; Set fade delay
C3/E41A:	60      	RTS

3F: Fade all but Mog's name
C3/E41B:	A420    	LDY $20        ; Delay expired?
C3/E41D:	D012    	BNE $E431      ; Exit if not
C3/E41F:	A938    	LDA #$38       ; C3/E2E7
C3/E421:	8526    	STA $26        ; Next: Fd name
C3/E423:	A07800  	LDY #$0078     ; Fade delay
C3/E426:	8420    	STY $20        ; Set for name
C3/E428:	2045E1  	JSR $E145      ; Fade BGs
C3/E42B:	209EE2  	JSR $E29E      ; Fade sprites
C3/E42E:	2045E8  	JSR $E845      ; Scroll table
C3/E431:	60      	RTS

46: Start Gogo's scene
C3/E432:	A90C    	LDA #$0C       ; Actor: Gogo
C3/E434:	20B9E0  	JSR $E0B9      ; Init BGs/font
C3/E437:	20B8EF  	JSR $EFB8      ; Draw helmet; eye
C3/E43A:	2092E1  	JSR $E192      ; Fade in BGs
C3/E43D:	2039E8  	JSR $E839      ; Scroll table
C3/E440:	20E4E9  	JSR $E9E4      ; Create pink eye
C3/E443:	A902    	LDA #$02       ; Min slot: 16
C3/E445:	A09FE4  	LDY #$E49F     ; C3/E49F
C3/E448:	207311  	JSR $1173      ; Queue eye fn
C3/E44B:	A9B4    	LDA #$B4       ; Eye delay
C3/E44D:	BF49337E	LDA $7E3349,X  ; Bug: LDA -> STA
C3/E451:	A07800  	LDY #$0078     ; Fade-in delay
C3/E454:	8420    	STY $20        ; Set for name
C3/E456:	4C23E1  	JMP $E123      ; Create text

47: Fade in "Gogo as"
C3/E459:	A420    	LDY $20        ; Delay expired?
C3/E45B:	D00A    	BNE $E467      ; Exit if not
C3/E45D:	E626    	INC $26        ; Next: C3/E47C
C3/E45F:	20DFE1  	JSR $E1DF      ; Queue fade-in
C3/E462:	A0F000  	LDY #$00F0     ; Switch delay
C3/E465:	8420    	STY $20        ; Set for nameS
C3/E467:	60      	RTS

Set to fade in glint on table object
C3/E468:	A9C2    	LDA #$C2       ; Bank: C2
C3/E46A:	85ED    	STA $ED        ; Set src HB
C3/E46C:	A901    	LDA #$01       ; Slowness: 1
C3/E46E:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/E471:	84E7    	STY $E7        ; ...
C3/E473:	A25C95  	LDX #$955C     ; C2/955C
C3/E476:	86EB    	STX $EB        ; ...
C3/E478:	20AA0F  	JSR $0FAA      ; Queue fade-in
C3/E47B:	60      	RTS

48: Switch Gogo's names
C3/E47C:	A420    	LDY $20        ; Delay expired?
C3/E47E:	D00A    	BNE $E48A      ; Exit if not
C3/E480:	E626    	INC $26        ; Next: C3/E48B
C3/E482:	2006E2  	JSR $E206      ; Switch names
C3/E485:	A06801  	LDY #$0168     ; Frames: 360
C3/E488:	8420    	STY $20        ; Set fade delay
C3/E48A:	60      	RTS

49: Fade all but Gogo's name
C3/E48B:	A420    	LDY $20        ; Delay expired?
C3/E48D:	D00F    	BNE $E49E      ; Exit if not
C3/E48F:	A938    	LDA #$38       ; C3/E2E7
C3/E491:	8526    	STA $26        ; Next: Fd name
C3/E493:	A07800  	LDY #$0078     ; Fade delay
C3/E496:	8420    	STY $20        ; Set for name
C3/E498:	2045E1  	JSR $E145      ; Fade BGs
C3/E49B:	209EE2  	JSR $E29E      ; Fade eye
C3/E49E:	60      	RTS

Animate eye in Gogo's helmet
C3/E49F:	AA      	TAX            ; Index mode
C3/E4A0:	7CA3E4  	JMP ($E4A3,X)  ; Handle mode

Jump table for Gogo's eye
C3/E4A3:	ABE4    	; Wait
C3/E4A5:	BAE4    	; Fade in eye
C3/E4A7:	ABE4    	; Wait
C3/E4A9:	DFE4    	; Fade out eye

Modes 0 and 2: Wait
C3/E4AB:	A62D    	LDX $2D        ; Queue index
C3/E4AD:	BD4933  	LDA $3349,X    ; Timer expired?
C3/E4B0:	D003    	BNE $E4B5      ; Branch if not
C3/E4B2:	FE4936  	INC $3649,X    ; Mode +1
C3/E4B5:	DE4933  	DEC $3349,X    ; Timer -1
C3/E4B8:	38      	SEC            ; Set to requeue
C3/E4B9:	60      	RTS

Mode 1: Fade in eye
C3/E4BA:	8B      	PHB            ; Save DB
C3/E4BB:	A900    	LDA #$00       ; ...
C3/E4BD:	48      	PHA            ; ...
C3/E4BE:	AB      	PLB            ; ...
C3/E4BF:	A9C2    	LDA #$C2       ; Bank: C2
C3/E4C1:	85ED    	STA $ED        ; Set src HB
C3/E4C3:	A901    	LDA #$01       ; Slowness: 1
C3/E4C5:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/E4C8:	84E7    	STY $E7        ; ...
C3/E4CA:	A27C95  	LDX #$957C     ; C2/957C
C3/E4CD:	86EB    	STX $EB        ; ...
C3/E4CF:	20AA0F  	JSR $0FAA      ; Queue fade-in
C3/E4D2:	AB      	PLB            ; Restore DB
C3/E4D3:	A62D    	LDX $2D        ; Queue index
C3/E4D5:	A93C    	LDA #$3C       ; Delay: 60
C3/E4D7:	9D4933  	STA $3349,X    ; Set fade-out's
C3/E4DA:	FE4936  	INC $3649,X    ; Mode +1
C3/E4DD:	38      	SEC            ; Set to requeue
C3/E4DE:	60      	RTS

Mode 3: Fade out eye
C3/E4DF:	8B      	PHB            ; Save DB
C3/E4E0:	A900    	LDA #$00       ; ...
C3/E4E2:	48      	PHA            ; ...
C3/E4E3:	AB      	PLB            ; ...
C3/E4E4:	A9C3    	LDA #$C3       ; C3/10F4
C3/E4E6:	85ED    	STA $ED        ; Set src HB
C3/E4E8:	A901    	LDA #$01       ; Slowness: 1
C3/E4EA:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/E4ED:	84E7    	STY $E7        ; ...
C3/E4EF:	A2F410  	LDX #$10F4     ; Black palette
C3/E4F2:	86EB    	STX $EB        ; ...
C3/E4F4:	20AA0F  	JSR $0FAA      ; Queue fade
C3/E4F7:	AB      	PLB            ; Restore DB
C3/E4F8:	18      	CLC            ; Set to dequeue
C3/E4F9:	60      	RTS

50: Start Gau's scene
C3/E4FA:	A90B    	LDA #$0B       ; Actor: Gau
C3/E4FC:	20B9E0  	JSR $E0B9      ; Init BGs/font
C3/E4FF:	20CEEF  	JSR $EFCE      ; Draw helmet; face
C3/E502:	2092E1  	JSR $E192      ; Fade in BGs
C3/E505:	208AE2  	JSR $E28A      ; Fade in face
C3/E508:	203FE8  	JSR $E83F      ; Scroll table
C3/E50B:	A07800  	LDY #$0078     ; Fade-in delay
C3/E50E:	8420    	STY $20        ; Set for name
C3/E510:	4C23E1  	JMP $E123      ; Create text

51: Fade in "Gau as"
C3/E513:	A420    	LDY $20        ; Delay expired?
C3/E515:	D00A    	BNE $E521      ; Exit if not
C3/E517:	E626    	INC $26        ; Next: C3/E522
C3/E519:	20DFE1  	JSR $E1DF      ; Queue fade-in
C3/E51C:	A0F000  	LDY #$00F0     ; Switch delay
C3/E51F:	8420    	STY $20        ; Set for names
C3/E521:	60      	RTS

52: Switch Gau's names; create face
C3/E522:	A420    	LDY $20        ; Delay expired?
C3/E524:	D00D    	BNE $E533      ; Exit if not
C3/E526:	E626    	INC $26        ; Next: C3/E534
C3/E528:	2094E9  	JSR $E994      ; Create face
C3/E52B:	2006E2  	JSR $E206      ; Switch names
C3/E52E:	A06801  	LDY #$0168     ; Frames: 360
C3/E531:	8420    	STY $20        ; Set fade delay
C3/E533:	60      	RTS

53: Fade all but Gau's name
C3/E534:	A420    	LDY $20        ; Delay expired?
C3/E536:	D012    	BNE $E54A      ; Exit if not
C3/E538:	A938    	LDA #$38       ; C3/E2E7
C3/E53A:	8526    	STA $26        ; Next: Fd name
C3/E53C:	A07800  	LDY #$0078     ; Fade delay
C3/E53F:	8420    	STY $20        ; Set for name
C3/E541:	2045E1  	JSR $E145      ; Fade BGs
C3/E544:	209EE2  	JSR $E29E      ; Fade face
C3/E547:	2045E8  	JSR $E845      ; Scroll table
C3/E54A:	60      	RTS

5A: Start Terra's scene
C3/E54B:	A900    	LDA #$00       ; Actor: Terra
C3/E54D:	20B9E0  	JSR $E0B9      ; Init BGs/font
C3/E550:	20E4EF  	JSR $EFE4      ; Draw glass; GFX
C3/E553:	2092E1  	JSR $E192      ; Fade in BGs
C3/E556:	2068E4  	JSR $E468      ; Fade in glint
C3/E559:	203FE8  	JSR $E83F      ; Scroll table
C3/E55C:	A07800  	LDY #$0078     ; Fade-in delay
C3/E55F:	8420    	STY $20        ; Set for name
C3/E561:	4C23E1  	JMP $E123      ; Create text

5B: Fade in "Terra as"
C3/E564:	A420    	LDY $20        ; Delay expired?
C3/E566:	D00A    	BNE $E572      ; Exit if not
C3/E568:	E626    	INC $26        ; Next: C3/E573
C3/E56A:	20DFE1  	JSR $E1DF      ; Queue fade-in
C3/E56D:	A0F000  	LDY #$00F0     ; Switch delay
C3/E570:	8420    	STY $20        ; Set for names
C3/E572:	60      	RTS

5C: Switch Terra's names, create glint
C3/E573:	A420    	LDY $20        ; Delay expired?
C3/E575:	D00D    	BNE $E584      ; Exit if not
C3/E577:	E626    	INC $26        ; Next: C3/E585
C3/E579:	2003EA  	JSR $EA03      ; Create glint
C3/E57C:	2006E2  	JSR $E206      ; Switch names
C3/E57F:	A06801  	LDY #$0168     ; Frames: 360
C3/E582:	8420    	STY $20        ; Set fade delay
C3/E584:	60      	RTS

5D: Fade all but Terra's name
C3/E585:	A420    	LDY $20        ; Delay expired?
C3/E587:	D012    	BNE $E59B      ; Exit if not
C3/E589:	A938    	LDA #$38       ; C3/E2E7
C3/E58B:	8526    	STA $26        ; Next: Fd name
C3/E58D:	A07800  	LDY #$0078     ; Fade delay
C3/E590:	8420    	STY $20        ; Set for name
C3/E592:	2045E1  	JSR $E145      ; Fade BGs
C3/E595:	209EE2  	JSR $E29E      ; Fade glint
C3/E598:	2045E8  	JSR $E845      ; Scroll table
C3/E59B:	60      	RTS

64: Start Locke and Celes's scene
C3/E59C:	A901    	LDA #$01       ; Actor: Locke
C3/E59E:	20B9E0  	JSR $E0B9      ; Init BGs/font
C3/E5A1:	20FAEF  	JSR $EFFA      ; Draw bouquet
C3/E5A4:	2092E1  	JSR $E192      ; Fade in BGs
C3/E5A7:	203FE8  	JSR $E83F      ; Scroll table
C3/E5AA:	A0E0FF  	LDY #$FFE0     ; X: -32 = 480
C3/E5AD:	8435    	STY $35        ; Set BG1 X-Pos
C3/E5AF:	A07800  	LDY #$0078     ; Fade-in delay
C3/E5B2:	8420    	STY $20        ; Set for name
C3/E5B4:	4C23E1  	JMP $E123      ; Create text

65: Fade in "Locke as"
C3/E5B7:	A420    	LDY $20        ; Delay expired?
C3/E5B9:	D00A    	BNE $E5C5      ; Exit if not
C3/E5BB:	E626    	INC $26        ; Next: C3/E5C6
C3/E5BD:	20DFE1  	JSR $E1DF      ; Queue fade-in
C3/E5C0:	A0F000  	LDY #$00F0     ; Switch delay
C3/E5C3:	8420    	STY $20        ; Set for alias
C3/E5C5:	60      	RTS

66: Switch Locke's names
C3/E5C6:	A420    	LDY $20        ; Delay expired?
C3/E5C8:	D00A    	BNE $E5D4      ; Exit if not
C3/E5CA:	E626    	INC $26        ; Next: C3/E5D5
C3/E5CC:	2006E2  	JSR $E206      ; Switch names
C3/E5CF:	A0F000  	LDY #$00F0     ; Intro delay
C3/E5D2:	8420    	STY $20        ; Set for Celes
C3/E5D4:	60      	RTS

67: Show Celes's name, fade Locke's
C3/E5D5:	A420    	LDY $20        ; Delay expired?
C3/E5D7:	D01B    	BNE $E5F4      ; Exit if not
C3/E5D9:	A400    	LDY $00        ; ...
C3/E5DB:	843F    	STY $3F        ; BG3 Y-Pos: 0
C3/E5DD:	A906    	LDA #$06       ; Actor: Celes
C3/E5DF:	8528    	STA $28        ; Set actor slot
C3/E5E1:	2097E8  	JSR $E897      ; Create "as"
C3/E5E4:	2055E2  	JSR $E255      ; Fade Locke
C3/E5E7:	205FDF  	JSR $DF5F      ; Create Celes
C3/E5EA:	20DFE1  	JSR $E1DF      ; Fade in Celes
C3/E5ED:	E626    	INC $26        ; Next: C3/E5F5
C3/E5EF:	A07800  	LDY #$0078     ; Removal delay
C3/E5F2:	8420    	STY $20        ; Set for Locke
C3/E5F4:	60      	RTS

68: Delete Locke's name
C3/E5F5:	A420    	LDY $20        ; Delay expired?
C3/E5F7:	D00B    	BNE $E604      ; Exit if not
C3/E5F9:	A901    	LDA #$01       ; Erase name: Y
C3/E5FB:	8547    	STA $47        ; Set sprite flag
C3/E5FD:	E626    	INC $26        ; Next: C3/E605
C3/E5FF:	A0B400  	LDY #$00B4     ; Switch delay
C3/E602:	8420    	STY $20        ; Set for Celes
C3/E604:	60      	RTS

69: Switch Celes's names
C3/E605:	A420    	LDY $20        ; Delay expired?
C3/E607:	D014    	BNE $E61D      ; Exit if not
C3/E609:	E626    	INC $26        ; Next: C3/E61E
C3/E60B:	A0B400  	LDY #$00B4     ; Frames: 180
C3/E60E:	8420    	STY $20        ; Set fade delay
C3/E610:	6447    	STZ $47        ; Erase name: N
C3/E612:	A01400  	LDY #$0014     ; Frames: 20
C3/E615:	8485    	STY $85        ; Set scroll delay
C3/E617:	2022E0  	JSR $E022      ; Create true name
C3/E61A:	2006E2  	JSR $E206      ; Switch names
C3/E61D:	60      	RTS

6A: Fade all but Celes's name
C3/E61E:	A420    	LDY $20        ; Delay expired?
C3/E620:	D012    	BNE $E634      ; Exit if not
C3/E622:	A938    	LDA #$38       ; C3/E2E7
C3/E624:	8526    	STA $26        ; Next: Fd name
C3/E626:	A07800  	LDY #$0078     ; Fade delay
C3/E629:	8420    	STY $20        ; Set for name
C3/E62B:	2045E1  	JSR $E145      ; Fade BGs
C3/E62E:	209EE2  	JSR $E29E      ; No sprites...
C3/E631:	2045E8  	JSR $E845      ; Scroll table
C3/E634:	60      	RTS

6E: Start Relm's scene
C3/E635:	A908    	LDA #$08       ; Actor: Relm
C3/E637:	20B9E0  	JSR $E0B9      ; Init BGs/font
C3/E63A:	200DF0  	JSR $F00D      ; Draw brush; GFX
C3/E63D:	2092E1  	JSR $E192      ; Fade in BGs
C3/E640:	2068E4  	JSR $E468      ; Fade in glint
C3/E643:	203FE8  	JSR $E83F      ; Scroll table
C3/E646:	202DEC  	JSR $EC2D      ; Queue glints
C3/E649:	A07800  	LDY #$0078     ; Fade-in delay
C3/E64C:	8420    	STY $20        ; Set for name
C3/E64E:	4C23E1  	JMP $E123      ; Create text

6F: Fade in "Relm as"
C3/E651:	A420    	LDY $20        ; Delay expired?
C3/E653:	D00A    	BNE $E65F      ; Exit if not
C3/E655:	E626    	INC $26        ; Next: C3/E660
C3/E657:	20DFE1  	JSR $E1DF      ; Queue fade-in
C3/E65A:	A0F000  	LDY #$00F0     ; Switch delay
C3/E65D:	8420    	STY $20        ; Set for names
C3/E65F:	60      	RTS

70: Switch Relm's names
C3/E660:	A420    	LDY $20        ; Delay expired?
C3/E662:	D00A    	BNE $E66E      ; Exit if not
C3/E664:	E626    	INC $26        ; Next: C3/E66F
C3/E666:	2006E2  	JSR $E206      ; Switch names
C3/E669:	A06801  	LDY #$0168     ; Frames: 360
C3/E66C:	8420    	STY $20        ; Set fade delay
C3/E66E:	60      	RTS

71: Fade all but Relm's name
C3/E66F:	A420    	LDY $20        ; Delay expired?
C3/E671:	D012    	BNE $E685      ; Exit if not
C3/E673:	A938    	LDA #$38       ; C3/E2E7
C3/E675:	8526    	STA $26        ; Next: Fd name
C3/E677:	A07800  	LDY #$0078     ; Fade delay
C3/E67A:	8420    	STY $20        ; Set for name
C3/E67C:	2045E1  	JSR $E145      ; Fade BGs
C3/E67F:	209EE2  	JSR $E29E      ; Fade glint
C3/E682:	2045E8  	JSR $E845      ; Scroll table
C3/E685:	60      	RTS

78: Start Strago's scene
C3/E686:	A907    	LDA #$07       ; Actor: Strago
C3/E688:	20B9E0  	JSR $E0B9      ; Init BGs/font
C3/E68B:	2023F0  	JSR $F023      ; Draw book
C3/E68E:	2092E1  	JSR $E192      ; Fade in BGs
C3/E691:	207FED  	JSR $ED7F      ; Queue book fn
C3/E694:	A07800  	LDY #$0078     ; Fade-in delay
C3/E697:	8420    	STY $20        ; Set for name
C3/E699:	4C23E1  	JMP $E123      ; Create text

79: Fade in "Strago as"
C3/E69C:	A420    	LDY $20        ; Delay expired?
C3/E69E:	D00A    	BNE $E6AA      ; Exit if not
C3/E6A0:	E626    	INC $26        ; Next: C3/E6AB
C3/E6A2:	20DFE1  	JSR $E1DF      ; Queue fade-in
C3/E6A5:	A0F000  	LDY #$00F0     ; Switch delay
C3/E6A8:	8420    	STY $20        ; Set for names
C3/E6AA:	60      	RTS

7A: Switch Strago's names
C3/E6AB:	A420    	LDY $20        ; Delay expired?
C3/E6AD:	D00A    	BNE $E6B9      ; Exit if not
C3/E6AF:	E626    	INC $26        ; Next: C3/E6BA
C3/E6B1:	2006E2  	JSR $E206      ; Switch names
C3/E6B4:	A06801  	LDY #$0168     ; Frames: 360
C3/E6B7:	8420    	STY $20        ; Set fade delay
C3/E6B9:	60      	RTS

7B: Fade all but Strago's name
C3/E6BA:	A420    	LDY $20        ; Delay expired?
C3/E6BC:	D00F    	BNE $E6CD      ; Exit if not
C3/E6BE:	A938    	LDA #$38       ; C3/E2E7
C3/E6C0:	8526    	STA $26        ; Next: Fd name
C3/E6C2:	A07800  	LDY #$0078     ; Fade delay
C3/E6C5:	8420    	STY $20        ; Set for name
C3/E6C7:	2045E1  	JSR $E145      ; Fade BGs
C3/E6CA:	209EE2  	JSR $E29E      ; No sprites...
C3/E6CD:	60      	RTS

2D: Start first book scene
C3/E6CE:	20B9E0  	JSR $E0B9      ; Init BGs/font
C3/E6D1:	2023F0  	JSR $F023      ; Draw book
C3/E6D4:	2092E1  	JSR $E192      ; Fade in BGs
C3/E6D7:	A0D002  	LDY #$02D0     ; Frames: 720
C3/E6DA:	8420    	STY $20        ; Set anim delay
C3/E6DC:	4C3DE1  	JMP $E13D      ; Queue BG1, etc.

2E: Animate first book
C3/E6DF:	A420    	LDY $20        ; Delay expired?
C3/E6E1:	D00A    	BNE $E6ED      ; Exit if not
C3/E6E3:	E626    	INC $26        ; Next: C3/E6EE
C3/E6E5:	2094ED  	JSR $ED94      ; Queue book fn
C3/E6E8:	A0E001  	LDY #$01E0     ; Frames: 480
C3/E6EB:	8420    	STY $20        ; Set wait timer
C3/E6ED:	60      	RTS

2F: Wait 480 frames
C3/E6EE:	A420    	LDY $20        ; Delay expired?
C3/E6F0:	D007    	BNE $E6F9      ; Exit if not
C3/E6F2:	E626    	INC $26        ; Next: C3/E6FA
C3/E6F4:	A06801  	LDY #$0168     ; Frames: 360
C3/E6F7:	8420    	STY $20        ; Set fade delay
C3/E6F9:	60      	RTS

30: Pixelate and fade first book
C3/E6FA:	A420    	LDY $20        ; Delay expired?
C3/E6FC:	D012    	BNE $E710      ; Exit if not
C3/E6FE:	A938    	LDA #$38       ; C3/E2E7
C3/E700:	8526    	STA $26        ; Next: Exit
C3/E702:	204BE8  	JSR $E84B      ; Queue mosaic
C3/E705:	A07800  	LDY #$0078     ; Frames: 120x2
C3/E708:	8420    	STY $20        ; Set exit delay
C3/E70A:	2045E1  	JSR $E145      ; Fade BGs
C3/E70D:	2045E8  	JSR $E845      ; Scroll table
C3/E710:	60      	RTS

4A: Start last book scene
C3/E711:	20B9E0  	JSR $E0B9      ; Init BGs/font
C3/E714:	2023F0  	JSR $F023      ; Draw book
C3/E717:	2092E1  	JSR $E192      ; Fade in BGs
C3/E71A:	20A9ED  	JSR $EDA9      ; Queue book fn
C3/E71D:	A0B400  	LDY #$00B4     ; Frames: 180
C3/E720:	8420    	STY $20        ; Set wait timer
C3/E722:	6447    	STZ $47        ; Erase text: N
C3/E724:	2098E0  	JSR $E098      ; Create "And you"
C3/E727:	4C3DE1  	JMP $E13D      ; Queue BG1, etc.

4B: Wait 180 frames
C3/E72A:	A420    	LDY $20        ; Delay expired?
C3/E72C:	D007    	BNE $E735      ; Exit if not
C3/E72E:	E626    	INC $26        ; Next: C3/E736
C3/E730:	A0EC00  	LDY #$00EC     ; Freeze delay
C3/E733:	8420    	STY $20        ; Set for book
C3/E735:	60      	RTS

4C: Stop last book and fade in text
C3/E736:	A420    	LDY $20        ; Delay expired?
C3/E738:	D00E    	BNE $E748      ; Exit if not
C3/E73A:	A901    	LDA #$01       ; Last page: Y
C3/E73C:	8599    	STA $99        ; Set book flag
C3/E73E:	E626    	INC $26        ; Next: C3/E749
C3/E740:	A06C01  	LDY #$016C     ; Frames: 364
C3/E743:	8420    	STY $20        ; Set fade delay
C3/E745:	202DE2  	JSR $E22D      ; Queue fade-in
C3/E748:	60      	RTS

4D: Pixelate and fade last book
C3/E749:	A420    	LDY $20        ; Delay expired?
C3/E74B:	D00F    	BNE $E75C      ; Exit if not
C3/E74D:	A938    	LDA #$38       ; C3/E2E7
C3/E74F:	8526    	STA $26        ; Next: Fd text
C3/E751:	204BE8  	JSR $E84B      ; Queue mosaic
C3/E754:	A07800  	LDY #$0078     ; Fade delay
C3/E757:	8420    	STY $20        ; Set for text
C3/E759:	2045E1  	JSR $E145      ; Fade BGs
C3/E75C:	60      	RTS

82: Start Setzer's scene
C3/E75D:	A909    	LDA #$09       ; Actor: Setzer
C3/E75F:	20B9E0  	JSR $E0B9      ; Init BGs/font
C3/E762:	2036F0  	JSR $F036      ; Upload cards
C3/E765:	2092E1  	JSR $E192      ; Fade in BGs
C3/E768:	A9C3    	LDA #$C3       ; Pal loc HB
C3/E76A:	A08931  	LDY #$3189     ; To OBJ pal 2
C3/E76D:	A2F410  	LDX #$10F4     ; Pal loc LBs
C3/E770:	208E0F  	JSR $0F8E      ; Cards: Black
C3/E773:	A9C2    	LDA #$C2       ; Bank: C2
C3/E775:	85ED    	STA $ED        ; Set src HB
C3/E777:	A902    	LDA #$02       ; Slowness: 2
C3/E779:	A08931  	LDY #$3189     ; To OBJ pal 2
C3/E77C:	84E7    	STY $E7        ; ...
C3/E77E:	A27497  	LDX #$9774     ; C2/9774
C3/E781:	86EB    	STX $EB        ; ...
C3/E783:	20AA0F  	JSR $0FAA      ; Fade in cards
C3/E786:	2039E8  	JSR $E839      ; Scroll table
C3/E789:	20E3E8  	JSR $E8E3      ; Create cards
C3/E78C:	A07800  	LDY #$0078     ; Fade-in delay
C3/E78F:	8420    	STY $20        ; Set for alias
C3/E791:	4C23E1  	JMP $E123      ; Create text

83: Fade in "Setzer as"
C3/E794:	A420    	LDY $20        ; Delay expired?
C3/E796:	D00A    	BNE $E7A2      ; Exit if not
C3/E798:	E626    	INC $26        ; Next: C3/E7A3
C3/E79A:	20DFE1  	JSR $E1DF      ; Queue fade-in
C3/E79D:	A0F000  	LDY #$00F0     ; Switch delay
C3/E7A0:	8420    	STY $20        ; Set for names
C3/E7A2:	60      	RTS

84: Switch Setzer's names
C3/E7A3:	A420    	LDY $20        ; Delay expired?
C3/E7A5:	D00A    	BNE $E7B1      ; Exit if not
C3/E7A7:	E626    	INC $26        ; Next: C3/E7B2
C3/E7A9:	2006E2  	JSR $E206      ; Switch names
C3/E7AC:	A06801  	LDY #$0168     ; Frames: 360
C3/E7AF:	8420    	STY $20        ; Set fade delay
C3/E7B1:	60      	RTS

85: Fade background
C3/E7B2:	A420    	LDY $20        ; Delay expired?
C3/E7B4:	D00A    	BNE $E7C0      ; Exit if not
C3/E7B6:	E626    	INC $26        ; Next: C3/E7C1
C3/E7B8:	A07800  	LDY #$0078     ; Fade delay
C3/E7BB:	8420    	STY $20        ; Set for cards
C3/E7BD:	2045E1  	JSR $E145      ; Fade BGs
C3/E7C0:	60      	RTS

86: Fade cards and name
C3/E7C1:	A420    	LDY $20        ; Delay expired?
C3/E7C3:	D01F    	BNE $E7E4      ; Exit if not
C3/E7C5:	A07800  	LDY #$0078     ; Frames: 120
C3/E7C8:	8420    	STY $20        ; Set exit delay
C3/E7CA:	A901    	LDA #$01       ; C3/C5D4
C3/E7CC:	8526    	STA $26        ; Next: Exit
C3/E7CE:	2055E2  	JSR $E255      ; Fade name
C3/E7D1:	A9C3    	LDA #$C3       ; ...
C3/E7D3:	85ED    	STA $ED        ; ...
C3/E7D5:	A904    	LDA #$04       ; Slowness: 4
C3/E7D7:	A08931  	LDY #$3189     ; To OBJ pal 2
C3/E7DA:	84E7    	STY $E7        ; ...
C3/E7DC:	A2F410  	LDX #$10F4     ; Black palette
C3/E7DF:	86EB    	STX $EB        ; ...
C3/E7E1:	20AA0F  	JSR $0FAA      ; Fade cards
C3/E7E4:	60      	RTS

87: Start Umaro's scene
C3/E7E5:	A90D    	LDA #$0D       ; Actor: Umaro
C3/E7E7:	20B9E0  	JSR $E0B9      ; Init BGs/font
C3/E7EA:	2072F0  	JSR $F072      ; Draw bones; GFX
C3/E7ED:	2092E1  	JSR $E192      ; Fade in BGs
C3/E7F0:	208AE2  	JSR $E28A      ; Fade in sprites
C3/E7F3:	203FE8  	JSR $E83F      ; Scroll table
C3/E7F6:	20C4E8  	JSR $E8C4      ; Create skull
C3/E7F9:	207CEA  	JSR $EA7C      ; Create moogles
C3/E7FC:	A07800  	LDY #$0078     ; Fade-in delay
C3/E7FF:	8420    	STY $20        ; Set for alias
C3/E801:	4C23E1  	JMP $E123      ; Create text

88: Fade in "Umaro as"
C3/E804:	A420    	LDY $20        ; Delay expired?
C3/E806:	D00A    	BNE $E812      ; Exit if not
C3/E808:	E626    	INC $26        ; Next: C3/E813
C3/E80A:	20DFE1  	JSR $E1DF      ; Queue fade-in
C3/E80D:	A0F000  	LDY #$00F0     ; Switch delay
C3/E810:	8420    	STY $20        ; Set for names
C3/E812:	60      	RTS

89: Switch Umaro's names
C3/E813:	A420    	LDY $20        ; Delay expired?
C3/E815:	D00A    	BNE $E821      ; Exit if not
C3/E817:	E626    	INC $26        ; Next: C3/E822
C3/E819:	2006E2  	JSR $E206      ; Switch names
C3/E81C:	A06801  	LDY #$0168     ; Frames: 360
C3/E81F:	8420    	STY $20        ; Set fade delay
C3/E821:	60      	RTS

8A: Fade all but Umaro's name
C3/E822:	A420    	LDY $20        ; Delay expired?
C3/E824:	D012    	BNE $E838      ; Exit if not
C3/E826:	A938    	LDA #$38       ; C3/E2E7
C3/E828:	8526    	STA $26        ; Next: Fd name
C3/E82A:	A07800  	LDY #$0078     ; Fade delay
C3/E82D:	8420    	STY $20        ; Set for name
C3/E82F:	2045E1  	JSR $E145      ; Fade BGs
C3/E832:	209EE2  	JSR $E29E      ; Fade sprites
C3/E835:	2045E8  	JSR $E845      ; Scroll table
C3/E838:	60      	RTS

Set to scroll BG1 westward for 20 seconds
C3/E839:	A0B004  	LDY #$04B0     ; Frames: 1200
C3/E83C:	4CEDDF  	JMP $DFED      ; Queue panning

Set to scroll BG1 westward for 5.2 seconds
C3/E83F:	A03801  	LDY #$0138     ; Frames: 312
C3/E842:	4CEDDF  	JMP $DFED      ; Queue panning

Set to scroll BG1 westward for 3 seconds
C3/E845:	A0B400  	LDY #$00B4     ; Frames: 180
C3/E848:	4CEDDF  	JMP $DFED      ; Queue panning

Queue mosaic effect for book
C3/E84B:	7B      	TDC            ; Min slot: 0
C3/E84C:	A052E8  	LDY #$E852     ; C3/E852
C3/E84F:	4C7311  	JMP $1173      ; Queue anim fn

Handle mosaic effect for book
C3/E852:	AA      	TAX            ; Index mode
C3/E853:	7C56E8  	JMP ($E856,X)  ; Handle mode

Jump table for the above
C3/E856:	5AE8    	; Initialize mosaic
C3/E858:	65E8    	; Sustain mosaic

Mode 0: Initialize mosaic
C3/E85A:	A62D    	LDX $2D        ; Queue index
C3/E85C:	FE4936  	INC $3649,X    ; Mode +1
C3/E85F:	9ECA33  	STZ $33CA,X    ; Intensity: 0
C3/E862:	9E4933  	STZ $3349,X    ; Wait timer: 0

Mode 1: Sustain mosaic
C3/E865:	A62D    	LDX $2D        ; Queue index
C3/E867:	BD4933  	LDA $3349,X    ; Delay expired?
C3/E86A:	F005    	BEQ $E871      ; Proceed if so
C3/E86C:	DE4933  	DEC $3349,X    ; Delay -1
C3/E86F:	38      	SEC            ; Set to requeue
C3/E870:	60      	RTS            ; Exit
C3/E871:	BDCA33  	LDA $33CA,X    ; Intensity
C3/E874:	090F    	ORA #$0F       ; Layers: All
C3/E876:	85B5    	STA $B5        ; Set mosaic
C3/E878:	A62D    	LDX $2D        ; ...
C3/E87A:	BDCA33  	LDA $33CA,X    ; Intensity
C3/E87D:	18      	CLC            ; Prepare ADC
C3/E87E:	6910    	ADC #$10       ; Intensity +1
C3/E880:	9DCA33  	STA $33CA,X    ; Save changes
C3/E883:	A910    	LDA #$10       ; Frames: 16
C3/E885:	9D4933  	STA $3349,X    ; Set next wait
C3/E888:	38      	SEC            ; Set to requeue
C3/E889:	60      	RTS

Scroll BG1 westward (unused)
C3/E88A:	A523    	LDA $23        ; NMI count
C3/E88C:	2903    	AND #$03       ; Now 0-3
C3/E88E:	D006    	BNE $E896      ; Exit if > 0
C3/E890:	C220    	REP #$20       ; 16-bit A
C3/E892:	E635    	INC $35        ; BG1 X-Pos +1
C3/E894:	E220    	SEP #$20       ; 8-bit A
C3/E896:	60      	RTS

Create "as"
C3/E897:	A903    	LDA #$03       ; Min slot: 24
C3/E899:	A084DE  	LDY #$DE84     ; C3/DE84
C3/E89C:	207311  	JSR $1173      ; Queue anim fn
C3/E89F:	C220    	REP #$20       ; 16-bit A
C3/E8A1:	A9388E  	LDA #$8E38     ; Anim table ptr
C3/E8A4:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/E8A8:	A95802  	LDA #$0258     ; Frames: 600
C3/E8AB:	9F49337E	STA $7E3349,X  ; Set hide delay
C3/E8AF:	E220    	SEP #$20       ; 8-bit A
C3/E8B1:	A9C2    	LDA #$C2       ; Bank: C2
C3/E8B3:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/E8B7:	A979    	LDA #$79       ; X: 121
C3/E8B9:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/E8BD:	A9C0    	LDA #$C0       ; Y: 192
C3/E8BF:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/E8C3:	60      	RTS

Create Umaro's skull
C3/E8C4:	20D2E9  	JSR $E9D2      ; Queue anim fn
C3/E8C7:	C220    	REP #$20       ; 16-bit A
C3/E8C9:	A96EF5  	LDA #$F56E     ; Anim table ptr
C3/E8CC:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/E8D0:	E220    	SEP #$20       ; 8-bit A
C3/E8D2:	A9CF    	LDA #$CF       ; Bank: CF
C3/E8D4:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/E8D8:	A9C4    	LDA #$C4       ; X: 196
C3/E8DA:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/E8DE:	A94F    	LDA #$4F       ; Y: 79
C3/E8E0:	4C68EA  	JMP $EA68      ; Set Y, pan flag

Create four playing cards
C3/E8E3:	207AE9  	JSR $E97A      ; Queue card 1
C3/E8E6:	A978    	LDA #$78       ; X: 120
C3/E8E8:	9FCA337E	STA $7E33CA,X  ; Set card 1's
C3/E8EC:	A950    	LDA #$50       ; X: 80
C3/E8EE:	9FCA337E	STA $7E33CA,X  ; Should be Y...
C3/E8F2:	C220    	REP #$20       ; 16-bit A
C3/E8F4:	A98000  	LDA #$0080     ; V-Spd: +0.5 px
C3/E8F7:	9F49357E	STA $7E3549,X  ; Set card 1's
C3/E8FB:	A92000  	LDA #$0020     ; H-Spd: +0.125 px
C3/E8FE:	9FC9347E	STA $7E34C9,X  ; Set card 1's
C3/E902:	E220    	SEP #$20       ; 8-bit A
C3/E904:	207AE9  	JSR $E97A      ; Queue card 2
C3/E907:	A904    	LDA #$04       ; Pose timer: 4
C3/E909:	9FCA367E	STA $7E36CA,X  ; Overwritten...
C3/E90D:	A948    	LDA #$48       ; X: 72
C3/E90F:	9FCA337E	STA $7E33CA,X  ; Set card 2's
C3/E913:	A9C0    	LDA #$C0       ; Y: 192
C3/E915:	9F4A347E	STA $7E344A,X  ; Set card 2's
C3/E919:	C220    	REP #$20       ; 16-bit A
C3/E91B:	A96000  	LDA #$0060     ; V-Spd: +0.375 px
C3/E91E:	9F49357E	STA $7E3549,X  ; Set card 2's
C3/E922:	A94000  	LDA #$0040     ; H-Spd: +0.25 px
C3/E925:	9FC9347E	STA $7E34C9,X  ; Set card 2's
C3/E929:	E220    	SEP #$20       ; 8-bit A
C3/E92B:	207AE9  	JSR $E97A      ; Queue card 3
C3/E92E:	A90C    	LDA #$0C       ; Pose timer: 12
C3/E930:	9FCA367E	STA $7E36CA,X  ; Overwritten...
C3/E934:	A998    	LDA #$98       ; X: 152
C3/E936:	9FCA337E	STA $7E33CA,X  ; Set card 3's
C3/E93A:	A910    	LDA #$10       ; Y: 16
C3/E93C:	9F4A347E	STA $7E344A,X  ; Set card 3's
C3/E940:	C220    	REP #$20       ; 16-bit A
C3/E942:	A98000  	LDA #$0080     ; V-Spd: +0.5 px
C3/E945:	9F49357E	STA $7E3549,X  ; Set card 3's
C3/E949:	A9E0FF  	LDA #$FFE0     ; H-Spd: -0.125 px
C3/E94C:	9FC9347E	STA $7E34C9,X  ; Set card 3's
C3/E950:	E220    	SEP #$20       ; 8-bit A
C3/E952:	207AE9  	JSR $E97A      ; Queue card 4
C3/E955:	A912    	LDA #$12       ; Pose timer: 18
C3/E957:	9FCA367E	STA $7E36CA,X  ; Overwritten...
C3/E95B:	A9D0    	LDA #$D0       ; X: 208
C3/E95D:	9FCA337E	STA $7E33CA,X  ; Set card 4's
C3/E961:	A980    	LDA #$80       ; Y: 128
C3/E963:	9F4A347E	STA $7E344A,X  ; Set card 4's
C3/E967:	C220    	REP #$20       ; 16-bit A
C3/E969:	A98000  	LDA #$0080     ; V-Spd: +0.5 px
C3/E96C:	9F49357E	STA $7E3549,X  ; Set card 4's
C3/E970:	A9A000  	LDA #$00A0     ; H-Spd: +0.625 px
C3/E973:	9FC9347E	STA $7E34C9,X  ; Set card 4's
C3/E977:	E220    	SEP #$20       ; 8-bit A
C3/E979:	60      	RTS

Queue current playing card
C3/E97A:	A900    	LDA #$00       ; Min slot: 0
C3/E97C:	A0ABDE  	LDY #$DEAB     ; C3/DEAB
C3/E97F:	207311  	JSR $1173      ; Queue anim fn
C3/E982:	C220    	REP #$20       ; 16-bit A
C3/E984:	A9FA92  	LDA #$92FA     ; Anim table ptr
C3/E987:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/E98B:	E220    	SEP #$20       ; 8-bit A
C3/E98D:	A9C2    	LDA #$C2       ; Bank: C2
C3/E98F:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/E993:	60      	RTS

Create face in Gau's diving helmet
C3/E994:	20D2E9  	JSR $E9D2      ; Queue anim fn
C3/E997:	C220    	REP #$20       ; 16-bit A
C3/E999:	A947F6  	LDA #$F647     ; Anim table ptr
C3/E99C:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/E9A0:	E220    	SEP #$20       ; 8-bit A
C3/E9A2:	A9CF    	LDA #$CF       ; Bank: CF
C3/E9A4:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/E9A8:	A9CB    	LDA #$CB       ; X: 203
C3/E9AA:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/E9AE:	A95F    	LDA #$5F       ; Y: 95
C3/E9B0:	4C68EA  	JMP $EA68      ; Set Y, pan flag

Create Shadow's apple
C3/E9B3:	20D2E9  	JSR $E9D2      ; Queue anim fn
C3/E9B6:	C220    	REP #$20       ; 16-bit A
C3/E9B8:	A99794  	LDA #$9497     ; Anim table ptr
C3/E9BB:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/E9BF:	E220    	SEP #$20       ; 8-bit A
C3/E9C1:	A9C2    	LDA #$C2       ; Bank: C2
C3/E9C3:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/E9C7:	A9C0    	LDA #$C0       ; X: 192
C3/E9C9:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/E9CD:	A957    	LDA #$57       ; Y: 87
C3/E9CF:	4C68EA  	JMP $EA68      ; Set Y, pan flag

Queue regular permanent sprite
C3/E9D2:	A903    	LDA #$03       ; Min slot: 24
C3/E9D4:	A0ABDE  	LDY #$DEAB     ; C3/DEAB
C3/E9D7:	207311  	JSR $1173      ; Queue OAM fn
C3/E9DA:	60      	RTS

Queue regular permanent sprite (unused variant)
C3/E9DB:	A902    	LDA #$02       ; Min slot: 16
C3/E9DD:	A0ABDE  	LDY #$DEAB     ; C3/DEAB
C3/E9E0:	207311  	JSR $1173      ; Queue OAM fn
C3/E9E3:	60      	RTS

Create glowing eye in Gogo's helmet
C3/E9E4:	20D2E9  	JSR $E9D2      ; Queue anim fn
C3/E9E7:	C220    	REP #$20       ; 16-bit A
C3/E9E9:	A950F4  	LDA #$F450     ; Anim table ptr
C3/E9EC:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/E9F0:	E220    	SEP #$20       ; 8-bit A
C3/E9F2:	A9CF    	LDA #$CF       ; Bank: CF
C3/E9F4:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/E9F8:	A9C8    	LDA #$C8       ; X: 200
C3/E9FA:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/E9FE:	A961    	LDA #$61       ; Y: 97
C3/EA00:	4C68EA  	JMP $EA68      ; Set Y, pan flag

Create glint on Terra's pendant
C3/EA03:	20D2E9  	JSR $E9D2      ; Queue anim fn
C3/EA06:	C220    	REP #$20       ; 16-bit A
C3/EA08:	A9B4F5  	LDA #$F5B4     ; Anim table ptr
C3/EA0B:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/EA0F:	E220    	SEP #$20       ; 8-bit A
C3/EA11:	A9CF    	LDA #$CF       ; Bank: CF
C3/EA13:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/EA17:	A980    	LDA #$80       ; X: 128
C3/EA19:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/EA1D:	A960    	LDA #$60       ; Y: 96
C3/EA1F:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/EA23:	60      	RTS

Create Mog's mini moogles and winding key
C3/EA24:	20D2E9  	JSR $E9D2      ; Queue key anim
C3/EA27:	C220    	REP #$20       ; 16-bit A
C3/EA29:	A915F5  	LDA #$F515     ; Anim table ptr
C3/EA2C:	9FC9327E	STA $7E32C9,X  ; Set key's
C3/EA30:	E220    	SEP #$20       ; 8-bit A
C3/EA32:	A9CF    	LDA #$CF       ; Bank: CF
C3/EA34:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/EA38:	A9E0    	LDA #$E0       ; X: 224
C3/EA3A:	9FCA337E	STA $7E33CA,X  ; Set key's
C3/EA3E:	A96F    	LDA #$6F       ; Y: 111
C3/EA40:	2068EA  	JSR $EA68      ; Set Y, pan flag
C3/EA43:	2073EA  	JSR $EA73      ; Queue moogle 1
C3/EA46:	A9BA    	LDA #$BA       ; X: 186
C3/EA48:	9FCA337E	STA $7E33CA,X  ; Set moogle 1's
C3/EA4C:	2073EA  	JSR $EA73      ; Queue moogle 2
C3/EA4F:	A9C6    	LDA #$C6       ; X: 198
C3/EA51:	9FCA337E	STA $7E33CA,X  ; Set moogle 2's
C3/EA55:	2073EA  	JSR $EA73      ; Queue moogle 3
C3/EA58:	A9D1    	LDA #$D1       ; X: 209
C3/EA5A:	9FCA337E	STA $7E33CA,X  ; Set moogle 3's
C3/EA5E:	2073EA  	JSR $EA73      ; Queue moogle 4
C3/EA61:	A9DC    	LDA #$DC       ; X: 220
C3/EA63:	9FCA337E	STA $7E33CA,X  ; Set moogle 4's
C3/EA67:	60      	RTS

Set sprite to pan with BG1, define Y position
C3/EA68:	9F4A347E	STA $7E344A,X  ; Set Y position
C3/EA6C:	A901    	LDA #$01       ; Pans with BG1
C3/EA6E:	9F4A367E	STA $7E364A,X  ; Set sprite flags
C3/EA72:	60      	RTS

Queue current mini moogle
C3/EA73:	A902    	LDA #$02       ; Min slot: 16
C3/EA75:	A0FCEA  	LDY #$EAFC     ; C3/EAFC
C3/EA78:	207311  	JSR $1173      ; Queue anim fn
C3/EA7B:	60      	RTS

Create Umaro's moogles
C3/EA7C:	2073EA  	JSR $EA73      ; Queue moogle 1
C3/EA7F:	20F5EA  	JSR $EAF5      ; Anim mode: 5
C3/EA82:	A93A    	LDA #$3A       ; Base X: 58
C3/EA84:	9FCA337E	STA $7E33CA,X  ; Set moogle 1's
C3/EA88:	C220    	REP #$20       ; 16-bit A
C3/EA8A:	A9A401  	LDA #$01A4     ; Frames: 420
C3/EA8D:	9F49337E	STA $7E3349,X  ; Set walk timer
C3/EA91:	A97FF4  	LDA #$F47F     ; Bump anim ptr
C3/EA94:	9FC9377E	STA $7E37C9,X  ; Set moogle 1's
C3/EA98:	E220    	SEP #$20       ; 8-bit A
C3/EA9A:	2073EA  	JSR $EA73      ; Queue moogle 2
C3/EA9D:	20F5EA  	JSR $EAF5      ; Anim mode: 5
C3/EAA0:	A92E    	LDA #$2E       ; Base X: 46
C3/EAA2:	9FCA337E	STA $7E33CA,X  ; Set moogle2's
C3/EAA6:	C220    	REP #$20       ; 16-bit A
C3/EAA8:	A9B801  	LDA #$01B8     ; Frames: 440
C3/EAAB:	9F49337E	STA $7E3349,X  ; Set walk timer
C3/EAAF:	A985F4  	LDA #$F485     ; Bump anim ptr
C3/EAB2:	9FC9377E	STA $7E37C9,X  ; Set moogle2's
C3/EAB6:	E220    	SEP #$20       ; 8-bit A
C3/EAB8:	2073EA  	JSR $EA73      ; Queue moogle 3
C3/EABB:	20F5EA  	JSR $EAF5      ; Anim mode: 5
C3/EABE:	A921    	LDA #$21       ; Base X: 33
C3/EAC0:	9FCA337E	STA $7E33CA,X  ; Set moogle 3's
C3/EAC4:	C220    	REP #$20       ; 16-bit A
C3/EAC6:	A9CC01  	LDA #$01CC     ; Frames: 460
C3/EAC9:	9F49337E	STA $7E3349,X  ; Set walk timer
C3/EACD:	A98BF4  	LDA #$F48B     ; Bump anim ptr
C3/EAD0:	9FC9377E	STA $7E37C9,X  ; Set moogle 3's
C3/EAD4:	E220    	SEP #$20       ; 8-bit A
C3/EAD6:	2073EA  	JSR $EA73      ; Queue moogle 4
C3/EAD9:	20F5EA  	JSR $EAF5      ; Anim mode: 5
C3/EADC:	A914    	LDA #$14       ; Base X: 20
C3/EADE:	9FCA337E	STA $7E33CA,X  ; Set moogle 3's
C3/EAE2:	C220    	REP #$20       ; 16-bit A
C3/EAE4:	A9E001  	LDA #$01E0     ; Frames: 480
C3/EAE7:	9F49337E	STA $7E3349,X  ; Set walk timer
C3/EAEB:	A991F4  	LDA #$F491     ; Bump anim ptr
C3/EAEE:	9FC9377E	STA $7E37C9,X  ; Set moogle 4's
C3/EAF2:	E220    	SEP #$20       ; 8-bit A
C3/EAF4:	60      	RTS

Initialize moogle's animation mode for Umaro
C3/EAF5:	A905    	LDA #$05       ; Approach bones
C3/EAF7:	9F49367E	STA $7E3649,X  ; Set anim mode
C3/EAFB:	60      	RTS

Animate mini moogle
C3/EAFC:	AA      	TAX            ; Index mode
C3/EAFD:	7C00EB  	JMP ($EB00,X)  ; Handle mode

Jump table
C3/EB00:	10EB    	; Initialize data
C3/EB02:	35EB    	; Spin around
C3/EB04:	5EEB    	; Face left
C3/EB06:	7BEB    	; Jump down
C3/EB08:	97EB    	; Walk away from tree
C3/EB0A:	9CEB    	; Initialize data
C3/EB0C:	A9EB    	; Walk toward bones
C3/EB0E:	D0EB    	; Stop and fall down

Mode 0: Initialize data
C3/EB10:	A62D    	LDX $2D        ; Queue index
C3/EB12:	FE4936  	INC $3649,X    ; Mode +1
C3/EB15:	C220    	REP #$20       ; 16-bit A
C3/EB17:	A958F4  	LDA #$F458     ; Anim table ptr
C3/EB1A:	9DC932  	STA $32C9,X    ; Set sprite's
C3/EB1D:	A96801  	LDA #$0168     ; Frames: 360
C3/EB20:	9D4933  	STA $3349,X    ; Set spin timer
C3/EB23:	E220    	SEP #$20       ; 8-bit A
C3/EB25:	A964    	LDA #$64       ; Y: 100
C3/EB27:	9D4A34  	STA $344A,X    ; Set sprite's
C3/EB2A:	A9CF    	LDA #$CF       ; Bank: CF
C3/EB2C:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/EB2F:	206CEA  	JSR $EA6C      ; Follow BG1: Y
C3/EB32:	200612  	JSR $1206      ; Set pose timer

Mode 1: Spin around
C3/EB35:	A62D    	LDX $2D        ; Queue index
C3/EB37:	BC4933  	LDY $3349,X    ; Mode expired?
C3/EB3A:	D01A    	BNE $EB56      ; Branch if not
C3/EB3C:	FE4936  	INC $3649,X    ; Mode +1
C3/EB3F:	C220    	REP #$20       ; 16-bit A
C3/EB41:	A97CF4  	LDA #$F47C     ; Anim table ptr
C3/EB44:	9DC932  	STA $32C9,X    ; Set sprite's
C3/EB47:	E220    	SEP #$20       ; 8-bit A
C3/EB49:	A9CF    	LDA #$CF       ; Bank: CF
C3/EB4B:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/EB4E:	A910    	LDA #$10       ; Frames: 16
C3/EB50:	9D4933  	STA $3349,X    ; Set jump timer
C3/EB53:	200612  	JSR $1206      ; Set pose timer
C3/EB56:	20E5CF  	JSR $CFE5      ; Mode timer -1
C3/EB59:	20C0DE  	JSR $DEC0      ; Scroll & OAM
C3/EB5C:	38      	SEC            ; Set to requeue
C3/EB5D:	60      	RTS

Mode 2: Jump down
C3/EB5E:	A62D    	LDX $2D        ; Queue index
C3/EB60:	BC4933  	LDY $3349,X    ; Mode expired?
C3/EB63:	D008    	BNE $EB6D      ; Branch if not
C3/EB65:	FE4936  	INC $3649,X    ; Mode +1
C3/EB68:	A93C    	LDA #$3C       ; Frames: 60
C3/EB6A:	9D4933  	STA $3349,X    ; Set walk delay
C3/EB6D:	20E5CF  	JSR $CFE5      ; Mode timer -1
C3/EB70:	20F0EB  	JSR $EBF0      ; Adjust Y-Pos
C3/EB73:	20C0DE  	JSR $DEC0      ; Scroll & OAM
C3/EB76:	FEC935  	INC $35C9,X    ; Y-Pos mod +1
C3/EB79:	38      	SEC            ; Set to requeue
C3/EB7A:	60      	RTS

Mode 3: Face left
C3/EB7B:	A62D    	LDX $2D        ; Queue index
C3/EB7D:	BC4933  	LDY $3349,X    ; Mode expired?
C3/EB80:	D00D    	BNE $EB8F      ; Branch if not
C3/EB82:	20D5EB  	JSR $EBD5      ; Set to walk
C3/EB85:	C220    	REP #$20       ; 16-bit A
C3/EB87:	A92C01  	LDA #$012C     ; Frames: 300
C3/EB8A:	9D4933  	STA $3349,X    ; No use...
C3/EB8D:	E220    	SEP #$20       ; 8-bit A
C3/EB8F:	20E5CF  	JSR $CFE5      ; Mode timer -1
C3/EB92:	20C0DE  	JSR $DEC0      ; Scroll & OAM
C3/EB95:	38      	SEC            ; Set to requeue
C3/EB96:	60      	RTS

Mode 4: Walk away from tree
C3/EB97:	20C0DE  	JSR $DEC0      ; Scroll & OAM
C3/EB9A:	38      	SEC            ; Set to requeue
C3/EB9B:	60      	RTS

Mode 5: Initialize data
C3/EB9C:	A62D    	LDX $2D        ; Queue index
C3/EB9E:	20D5EB  	JSR $EBD5      ; Set to walk
C3/EBA1:	A970    	LDA #$70       ; Y: 112
C3/EBA3:	9D4A34  	STA $344A,X    ; Set sprite's
C3/EBA6:	206CEA  	JSR $EA6C      ; Follow BG1: Y

Mode 6: Walk toward bones
C3/EBA9:	A62D    	LDX $2D        ; Queue index
C3/EBAB:	BC4933  	LDY $3349,X    ; Mode expired?
C3/EBAE:	D018    	BNE $EBC8      ; Branch if not
C3/EBB0:	FE4936  	INC $3649,X    ; Mode +1
C3/EBB3:	C220    	REP #$20       ; 16-bit A
C3/EBB5:	9EC934  	STZ $34C9,X    ; H-Speed: 0
C3/EBB8:	BDC937  	LDA $37C9,X    ; Queue anim ptr
C3/EBBB:	9DC932  	STA $32C9,X    ; Set as current
C3/EBBE:	E220    	SEP #$20       ; 8-bit A
C3/EBC0:	A9CF    	LDA #$CF       ; Bank: CF
C3/EBC2:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/EBC5:	200612  	JSR $1206      ; Set pose timer
C3/EBC8:	20E5CF  	JSR $CFE5      ; Mode timer -1
C3/EBCB:	20C0DE  	JSR $DEC0      ; Scroll & OAM
C3/EBCE:	38      	SEC            ; Set to requeue
C3/EBCF:	60      	RTS

Mode 7: Stop and fall down
C3/EBD0:	20C0DE  	JSR $DEC0      ; Scroll & OAM
C3/EBD3:	38      	SEC            ; Set to requeue
C3/EBD4:	60      	RTS

Set mini moogle to walk eastward
C3/EBD5:	FE4936  	INC $3649,X    ; Mode +1
C3/EBD8:	C220    	REP #$20       ; 16-bit A
C3/EBDA:	A973F4  	LDA #$F473     ; Anim table ptr
C3/EBDD:	9DC932  	STA $32C9,X    ; Set sprite's
C3/EBE0:	A94000  	LDA #$0040     ; H-Spd: +0.25 px
C3/EBE3:	9DC934  	STA $34C9,X    ; Set sprite's
C3/EBE6:	E220    	SEP #$20       ; 8-bit A
C3/EBE8:	A9CF    	LDA #$CF       ; Bank: CF
C3/EBEA:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/EBED:	4C0612  	JMP $1206      ; Set pose timer

Adjust jumping mini moogle's Y position
C3/EBF0:	A62D    	LDX $2D        ; Queue index
C3/EBF2:	BDC935  	LDA $35C9,X    ; Modifier index
C3/EBF5:	290F    	AND #$0F       ; ...
C3/EBF7:	AA      	TAX            ; Index it
C3/EBF8:	BF5EF5CF	LDA $CFF55E,X  ; Y modifier
C3/EBFC:	85E0    	STA $E0        ; Memorize it
C3/EBFE:	300D    	BMI $EC0D      ; Branch if up
C3/EC00:	A62D    	LDX $2D        ; Queue index
C3/EC02:	BD4A34  	LDA $344A,X    ; Sprite's Y
C3/EC05:	18      	CLC            ; Prepare ADC
C3/EC06:	65E0    	ADC $E0        ; Add modifier
C3/EC08:	9D4A34  	STA $344A,X    ; Save changes
C3/EC0B:	8016    	BRA $EC23      ; Exit

Fork: Shift upward
C3/EC0D:	A62D    	LDX $2D        ; Queue index
C3/EC0F:	ADE000  	LDA $00E0      ; Y modifier
C3/EC12:	1003    	BPL $EC17      ; ...
C3/EC14:	49FF    	EOR #$FF       ; Invert it
C3/EC16:	1A      	INC A          ; Add 1
C3/EC17:	8DE000  	STA $00E0      ; Save changes
C3/EC1A:	BD4A34  	LDA $344A,X    ; Sprite's Y
C3/EC1D:	38      	SEC            ; Prepare SBC
C3/EC1E:	E5E0    	SBC $E0        ; Sub modifier
C3/EC20:	9D4A34  	STA $344A,X    ; Save changes
C3/EC23:	60      	RTS

Queue double-headed coin
C3/EC24:	A902    	LDA #$02       ; Min slot: 16
C3/EC26:	A039ED  	LDY #$ED39     ; C3/ED39
C3/EC29:	207311  	JSR $1173      ; Queue anim fn
C3/EC2C:	60      	RTS

Set to create glints on brush
C3/EC2D:	A900    	LDA #$00       ; Min slot: 0
C3/EC2F:	A048EC  	LDY #$EC48     ; C3/EC48
C3/EC32:	207311  	JSR $1173      ; Queue anim fn
C3/EC35:	60      	RTS

Set to create glints on katana
C3/EC36:	A900    	LDA #$00       ; Min slot: 0
C3/EC38:	A0AEEC  	LDY #$ECAE     ; C3/ECAE
C3/EC3B:	207311  	JSR $1173      ; Queue anim fn
C3/EC3E:	60      	RTS

Queue brush or katana glint
C3/EC3F:	A902    	LDA #$02       ; Min slot: 16
C3/EC41:	A014ED  	LDY #$ED14     ; C3/ED14
C3/EC44:	207311  	JSR $1173      ; Queue anim fn
C3/EC47:	60      	RTS

Create a series of glints on Relm's brush
C3/EC48:	AA      	TAX            ; Index mode
C3/EC49:	7C4CEC  	JMP ($EC4C,X)  ; Handle mode

Jump table for the above
C3/EC4C:	50EC    	; Initialize wave
C3/EC4E:	67EC    	; Create wave

Mode 0: Initialize wave
C3/EC50:	A62D    	LDX $2D        ; Queue index
C3/EC52:	FE4936  	INC $3649,X    ; Mode +1
C3/EC55:	C220    	REP #$20       ; 16-bit A
C3/EC57:	A96801  	LDA #$0168     ; Frames: 360
C3/EC5A:	9D4933  	STA $3349,X    ; Set wave delay
C3/EC5D:	E220    	SEP #$20       ; 8-bit A
C3/EC5F:	A9E4    	LDA #$E4       ; X: 228
C3/EC61:	85C7    	STA $C7        ; Set base X
C3/EC63:	A903    	LDA #$03       ; Glints: 3
C3/EC65:	85C9    	STA $C9        ; Set counter

Mode 1: Create wave
C3/EC67:	A5C9    	LDA $C9        ; Glints left
C3/EC69:	F041    	BEQ $ECAC      ; Dequeue if 0
C3/EC6B:	A62D    	LDX $2D        ; Queue index
C3/EC6D:	BC4933  	LDY $3349,X    ; Delay expired?
C3/EC70:	D035    	BNE $ECA7      ; Branch if not
C3/EC72:	A908    	LDA #$08       ; Frames: 8
C3/EC74:	9D4933  	STA $3349,X    ; Set next delay
C3/EC77:	8B      	PHB            ; Save DB
C3/EC78:	A900    	LDA #$00       ; ...
C3/EC7A:	48      	PHA            ; ...
C3/EC7B:	AB      	PLB            ; ...
C3/EC7C:	203FEC  	JSR $EC3F      ; Queue glint
C3/EC7F:	A968    	LDA #$68       ; Y: 104
C3/EC81:	9F4A347E	STA $7E344A,X  ; Set glint's
C3/EC85:	C220    	REP #$20       ; 16-bit A
C3/EC87:	A9B4F5  	LDA #$F5B4     ; Anim table ptr
C3/EC8A:	9FC9327E	STA $7E32C9,X  ; Set glint's
C3/EC8E:	E220    	SEP #$20       ; 8-bit A
C3/EC90:	A9CF    	LDA #$CF       ; Bank: CF
C3/EC92:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/EC96:	A5C7    	LDA $C7        ; Base X
C3/EC98:	9FCA337E	STA $7E33CA,X  ; Set glint's
C3/EC9C:	AB      	PLB            ; Restore DB
C3/EC9D:	C6C7    	DEC $C7        ; Base X -1
C3/EC9F:	C6C7    	DEC $C7        ; Base X -1
C3/ECA1:	C6C7    	DEC $C7        ; Base X -1
C3/ECA3:	C6C7    	DEC $C7        ; Base X -1
C3/ECA5:	C6C9    	DEC $C9        ; Glints left -1
C3/ECA7:	20E5CF  	JSR $CFE5      ; Delay -1
C3/ECAA:	38      	SEC            ; Set to requeue
C3/ECAB:	60      	RTS            ; Exit
C3/ECAC:	18      	CLC            ; Set to dequeue
C3/ECAD:	60      	RTS

Create a series of glints on Cyan's katana
C3/ECAE:	AA      	TAX            ; Index mode
C3/ECAF:	7CB2EC  	JMP ($ECB2,X)  ; Handle mode

Jump table for the above
C3/ECB2:	B6EC    	; Initialize wave
C3/ECB4:	CDEC    	; Create wave

Mode 0: Initialize wave
C3/ECB6:	A62D    	LDX $2D        ; Queue index
C3/ECB8:	FE4936  	INC $3649,X    ; Mode +1
C3/ECBB:	C220    	REP #$20       ; 16-bit A
C3/ECBD:	A96801  	LDA #$0168     ; Frames: 360
C3/ECC0:	9D4933  	STA $3349,X    ; Set wave delay
C3/ECC3:	E220    	SEP #$20       ; 8-bit A
C3/ECC5:	A9C8    	LDA #$C8       ; X: 200
C3/ECC7:	85C7    	STA $C7        ; Set base X
C3/ECC9:	A904    	LDA #$04       ; Glints: 4
C3/ECCB:	85C9    	STA $C9        ; Set counter

Mode 1: Create wave
C3/ECCD:	A5C9    	LDA $C9        ; Glints left
C3/ECCF:	F041    	BEQ $ED12      ; Dequeue if 0
C3/ECD1:	A62D    	LDX $2D        ; Queue index
C3/ECD3:	BC4933  	LDY $3349,X    ; Delay expired?
C3/ECD6:	D035    	BNE $ED0D      ; Branch if not
C3/ECD8:	A908    	LDA #$08       ; Frames: 8
C3/ECDA:	9D4933  	STA $3349,X    ; Set next delay
C3/ECDD:	8B      	PHB            ; Save DB
C3/ECDE:	A900    	LDA #$00       ; ...
C3/ECE0:	48      	PHA            ; ...
C3/ECE1:	AB      	PLB            ; ...
C3/ECE2:	203FEC  	JSR $EC3F      ; Queue glint
C3/ECE5:	A960    	LDA #$60       ; Y: 96
C3/ECE7:	9F4A347E	STA $7E344A,X  ; Set glint's
C3/ECEB:	C220    	REP #$20       ; 16-bit A
C3/ECED:	A9FAF5  	LDA #$F5FA     ; Anim table ptr
C3/ECF0:	9FC9327E	STA $7E32C9,X  ; Set glint's
C3/ECF4:	E220    	SEP #$20       ; 8-bit A
C3/ECF6:	A9CF    	LDA #$CF       ; Bank: CF
C3/ECF8:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/ECFC:	A5C7    	LDA $C7        ; Base X
C3/ECFE:	9FCA337E	STA $7E33CA,X  ; Set glint's
C3/ED02:	AB      	PLB            ; Restore DB
C3/ED03:	C6C7    	DEC $C7        ; Base X -1
C3/ED05:	C6C7    	DEC $C7        ; Base X -1
C3/ED07:	C6C7    	DEC $C7        ; Base X -1
C3/ED09:	C6C7    	DEC $C7        ; Base X -1
C3/ED0B:	C6C9    	DEC $C9        ; Glints left -1
C3/ED0D:	20E5CF  	JSR $CFE5      ; Delay -1
C3/ED10:	38      	SEC            ; Set to requeue
C3/ED11:	60      	RTS            ; Exit
C3/ED12:	18      	CLC            ; Set to dequeue
C3/ED13:	60      	RTS

Animate glint on brush or katana
C3/ED14:	AA      	TAX            ; Index mode
C3/ED15:	7C18ED  	JMP ($ED18,X)  ; Handle mode

Jump table for the above
C3/ED18:	1CED    	; Initialize sprite
C3/ED1A:	29ED    	; Sustain sprite

Mode 0: Initialize sprite
C3/ED1C:	A62D    	LDX $2D        ; Queue index
C3/ED1E:	FE4936  	INC $3649,X    ; Mode +1
C3/ED21:	A901    	LDA #$01       ; Pans with BG1
C3/ED23:	9D4A36  	STA $364A,X    ; Set OBJ flags
C3/ED26:	200612  	JSR $1206      ; Set pose timer

Mode 1: Sustain sprite
C3/ED29:	A62D    	LDX $2D        ; Queue index
C3/ED2B:	BDCA36  	LDA $36CA,X    ; Pose timer
C3/ED2E:	C9FE    	CMP #$FE       ; Set as endless?
C3/ED30:	F005    	BEQ $ED37      ; Delete if so
C3/ED32:	20C0DE  	JSR $DEC0      ; Scroll & OAM
C3/ED35:	38      	SEC            ; Set to requeue
C3/ED36:	60      	RTS            ; Exit
C3/ED37:	18      	CLC            ; Set to dequeue
C3/ED38:	60      	RTS

Animate double-headed coin
C3/ED39:	AA      	TAX            ; Index mode
C3/ED3A:	7C3DED  	JMP ($ED3D,X)  ; Handle mode

Jump table for the above
C3/ED3D:	41ED    	; Initialize sprite
C3/ED3F:	6DED    	; Sustain sprite

Mode 0: Initialize sprite
C3/ED41:	A62D    	LDX $2D        ; Queue index
C3/ED43:	FE4936  	INC $3649,X    ; Mode +1
C3/ED46:	C220    	REP #$20       ; 16-bit A
C3/ED48:	A993EC  	LDA #$EC93     ; Anim table ptr
C3/ED4B:	9DC932  	STA $32C9,X    ; Set sprite's
C3/ED4E:	A98000  	LDA #$0080     ; H-Spd: +0.5 px
C3/ED51:	9DC934  	STA $34C9,X    ; Set sprite's
C3/ED54:	E220    	SEP #$20       ; 8-bit A
C3/ED56:	A9C8    	LDA #$C8       ; Frames: 200
C3/ED58:	9D4933  	STA $3349,X    ; Set roll timer
C3/ED5B:	A9D8    	LDA #$D8       ; Bank: D8
C3/ED5D:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/ED60:	A910    	LDA #$10       ; X: 16
C3/ED62:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/ED65:	A964    	LDA #$64       ; Y: 100
C3/ED67:	9D4A34  	STA $344A,X    ; Set sprite's
C3/ED6A:	200612  	JSR $1206      ; Set pose timer

Mode 1: Sustain sprite
C3/ED6D:	A62D    	LDX $2D        ; Queue index
C3/ED6F:	BD4933  	LDA $3349,X    ; Stop rolling?
C3/ED72:	D003    	BNE $ED77      ; Branch if not
C3/ED74:	9EC934  	STZ $34C9,X    ; H-Speed: 0
C3/ED77:	DE4933  	DEC $3349,X    ; Roll timer -1
C3/ED7A:	20C0DE  	JSR $DEC0      ; Scroll & OAM
C3/ED7D:	38      	SEC            ; Set to requeue
C3/ED7E:	60      	RTS

Set to animate Strago's book
C3/ED7F:	20BEED  	JSR $EDBE      ; Queue anim fn
C3/ED82:	C220    	REP #$20       ; 16-bit A
C3/ED84:	A9728B  	LDA #$8B72     ; Anim table ptr
C3/ED87:	9FC9327E	STA $7E32C9,X  ; Set book's
C3/ED8B:	E220    	SEP #$20       ; 8-bit A
C3/ED8D:	A9C2    	LDA #$C2       ; Bank: C2
C3/ED8F:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/ED93:	60      	RTS

Set to animate first book
C3/ED94:	20BEED  	JSR $EDBE      ; Queue anim fn
C3/ED97:	C220    	REP #$20       ; 16-bit A
C3/ED99:	A9638B  	LDA #$8B63     ; Anim table ptr
C3/ED9C:	9FC9327E	STA $7E32C9,X  ; Set book's
C3/EDA0:	E220    	SEP #$20       ; 8-bit A
C3/EDA2:	A9C2    	LDA #$C2       ; Bank: C2
C3/EDA4:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/EDA8:	60      	RTS

Set to animate last book
C3/EDA9:	20BEED  	JSR $EDBE      ; Queue anim fn
C3/EDAC:	C220    	REP #$20       ; 16-bit A
C3/EDAE:	A9458B  	LDA #$8B45     ; Anim table ptr
C3/EDB1:	9FC9327E	STA $7E32C9,X  ; Set book's
C3/EDB5:	E220    	SEP #$20       ; 8-bit A
C3/EDB7:	A9C2    	LDA #$C2       ; Bank: C2
C3/EDB9:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/EDBD:	60      	RTS

Set to animate book
C3/EDBE:	7B      	TDC            ; Clear A
C3/EDBF:	A8      	TAY            ; Clear Y
C3/EDC0:	8599    	STA $99        ; Last page: N
C3/EDC2:	8460    	STY $60        ; Always 0...
C3/EDC4:	A901    	LDA #$01       ; Min slot: 8
C3/EDC6:	A004EE  	LDY #$EE04     ; C3/EE04
C3/EDC9:	207311  	JSR $1173      ; Queue anim fn
C3/EDCC:	60      	RTS

Integrate decompressed tilemap segment, adjust attributes
C3/EDCD:	86E7    	STX $E7        ; Set src LBs
C3/EDCF:	A97F    	LDA #$7F       ; Bank: 7F
C3/EDD1:	85E9    	STA $E9        ; Set src HB
C3/EDD3:	84EB    	STY $EB        ; Set dst LBs
C3/EDD5:	A97E    	LDA #$7E       ; Bank: 7E
C3/EDD7:	85ED    	STA $ED        ; Set dst HB
C3/EDD9:	A600    	LDX $00        ; Rows done: 0
C3/EDDB:	C220    	REP #$20       ; 16-bit A
C3/EDDD:	7B      	TDC            ; Clear A
C3/EDDE:	A8      	TAY            ; Index: 0
C3/EDDF:	B7E7    	LDA [$E7],Y    ; Attributes
C3/EDE1:	18      	CLC            ; Prepare ADC
C3/EDE2:	6560    	ADC $60        ; Always 0...
C3/EDE4:	97EB    	STA [$EB],Y    ; Put in map
C3/EDE6:	C8      	INY            ; Index +1
C3/EDE7:	C8      	INY            ; Index +1
C3/EDE8:	C4E0    	CPY $E0        ; End of row?
C3/EDEA:	D0F3    	BNE $EDDF      ; Loop if not
C3/EDEC:	A5E7    	LDA $E7        ; Source LBs
C3/EDEE:	18      	CLC            ; Prepare ADC
C3/EDEF:	694000  	ADC #$0040     ; Go 1 row down
C3/EDF2:	85E7    	STA $E7        ; Save changes
C3/EDF4:	A5EB    	LDA $EB        ; Dest LBs
C3/EDF6:	18      	CLC            ; Prepare ADC
C3/EDF7:	694000  	ADC #$0040     ; Go 1 row down
C3/EDFA:	85EB    	STA $EB        ; Save changes
C3/EDFC:	E8      	INX            ; Rows done +1
C3/EDFD:	E4E2    	CPX $E2        ; More left?
C3/EDFF:	D0DC    	BNE $EDDD      ; Loop if so
C3/EE01:	E220    	SEP #$20       ; 8-bit A
C3/EE03:	60      	RTS

Animate book
C3/EE04:	AA      	TAX            ; Index mode
C3/EE05:	7C08EE  	JMP ($EE08,X)  ; Handle mode

Jump table for the above
C3/EE08:	0EEE    	; Initialize timer
C3/EE0A:	18EE    	; Check if last page
C3/EE0C:	1CEE    	; Update tilemap

Mode 0: Initialize timer
C3/EE0E:	A62D    	LDX $2D        ; Queue index
C3/EE10:	FE4936  	INC $3649,X    ; Mode +1
C3/EE13:	200612  	JSR $1206      ; Set pose timer
C3/EE16:	38      	SEC            ; Set to requeue
C3/EE17:	60      	RTS

Mode 1: Check if last page
C3/EE18:	A599    	LDA $99        ; Last page?
C3/EE1A:	D03D    	BNE $EE59      ; Branch if so

Mode 2: Update tilemap
C3/EE1C:	A62D    	LDX $2D        ; Queue index
C3/EE1E:	202712  	JSR $1227      ; Pose timer -1
C3/EE21:	A62D    	LDX $2D        ; Queue index
C3/EE23:	E210    	SEP #$10       ; 8-bit X, Y
C3/EE25:	BDC936  	LDA $36C9,X    ; Pose index
C3/EE28:	A8      	TAY            ; Index it
C3/EE29:	C220    	REP #$20       ; 16-bit A
C3/EE2B:	B7EB    	LDA [$EB],Y    ; Pose info loc
C3/EE2D:	85E7    	STA $E7        ; Set src LBs
C3/EE2F:	C8      	INY            ; ...
C3/EE30:	C8      	INY            ; ...
C3/EE31:	E220    	SEP #$20       ; 8-bit A
C3/EE33:	BDCA35  	LDA $35CA,X    ; Anim ptr HB
C3/EE36:	85E9    	STA $E9        ; Set src HB
C3/EE38:	C210    	REP #$10       ; 16-bit X, Y
C3/EE3A:	A400    	LDY $00        ; Src index: 0
C3/EE3C:	C220    	REP #$20       ; 16-bit A
C3/EE3E:	B7E7    	LDA [$E7],Y    ; Column count
C3/EE40:	85E0    	STA $E0        ; Set width
C3/EE42:	C8      	INY            ; Src index +1
C3/EE43:	C8      	INY            ; Src index +1
C3/EE44:	B7E7    	LDA [$E7],Y    ; Row count
C3/EE46:	85E2    	STA $E2        ; Set height
C3/EE48:	C8      	INY            ; Src index +1
C3/EE49:	C8      	INY            ; Src index +1
C3/EE4A:	B7E7    	LDA [$E7],Y    ; Source LBs
C3/EE4C:	AA      	TAX            ; Put in X
C3/EE4D:	C8      	INY            ; Src index +1
C3/EE4E:	C8      	INY            ; Src index +1
C3/EE4F:	B7E7    	LDA [$E7],Y    ; Dest LBs
C3/EE51:	A8      	TAY            ; Put in Y
C3/EE52:	E220    	SEP #$20       ; 8-bit A
C3/EE54:	20CDED  	JSR $EDCD      ; Replace tiles
C3/EE57:	38      	SEC            ; Set to requeue
C3/EE58:	60      	RTS

Fork: Set to stop animation
C3/EE59:	6499    	STZ $99        ; ...
C3/EE5B:	A62D    	LDX $2D        ; Queue index
C3/EE5D:	FE4936  	INC $3649,X    ; Mode +1
C3/EE60:	C220    	REP #$20       ; 16-bit A
C3/EE62:	A9548B  	LDA #$8B54     ; Anim table ptr
C3/EE65:	9DC932  	STA $32C9,X    ; Set book's
C3/EE68:	E220    	SEP #$20       ; 8-bit A
C3/EE6A:	A9C2    	LDA #$C2       ; Bank: C2
C3/EE6C:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/EE6F:	200612  	JSR $1206      ; Set pose timer
C3/EE72:	80A8    	BRA $EE1C      ; Replace tiles

Unpack and upload large font graphics for actor scene
C3/EE74:	A000BA  	LDY #$BA00     ; Source LBs
C3/EE77:	A9C4    	LDA #$C4       ; Source HB
C3/EE79:	2061DD  	JSR $DD61      ; Unpack GFX
C3/EE7C:	A000C0  	LDY #$C000     ; 7E/C000
C3/EE7F:	84E7    	STY $E7        ; Set src LBs
C3/EE81:	A97E    	LDA #$7E       ; Bank: 7E
C3/EE83:	85E9    	STA $E9        ; Set src HB
C3/EE85:	A00009  	LDY #$0900     ; Bytes: 2304
C3/EE88:	84EB    	STY $EB        ; Set data size
C3/EE8A:	A00070  	LDY #$7000     ; VRAM pointer
C3/EE8D:	4C86DD  	JMP $DD86      ; Upload GFX

Unpack and upload BG graphics and tilemaps for actor scene
C3/EE90:	A008C0  	LDY #$C008     ; Source LBs
C3/EE93:	A9C4    	LDA #$C4       ; Source HB
C3/EE95:	2061DD  	JSR $DD61      ; Unpack data

Fork: Copy table's map to BG1 tilemap A
C3/EE98:	A04938  	LDY #$3849     ; BG1 map A
C3/EE9B:	84EB    	STY $EB        ; Set dst LBs
C3/EE9D:	A97E    	LDA #$7E       ; Bank: 7E
C3/EE9F:	85ED    	STA $ED        ; Set dst HB
C3/EEA1:	2010EF  	JSR $EF10      ; Move data

Fork: Copy table's map to BG1 tilemap B
C3/EEA4:	A04940  	LDY #$4049     ; BG1 map B
C3/EEA7:	84EB    	STY $EB        ; Set dst LBs
C3/EEA9:	A97E    	LDA #$7E       ; Bank: 7E
C3/EEAB:	85ED    	STA $ED        ; Set dst HB
C3/EEAD:	2010EF  	JSR $EF10      ; Move data

Fork: Upload tall items and table side graphics
C3/EEB0:	A000C0  	LDY #$C000     ; 7E/C000
C3/EEB3:	84E7    	STY $E7        ; Set src LBs
C3/EEB5:	A97E    	LDA #$7E       ; Bank: 7E
C3/EEB7:	85E9    	STA $E9        ; Set src HB
C3/EEB9:	A0601F  	LDY #$1F60     ; Bytes: 8032
C3/EEBC:	84EB    	STY $EB        ; Set data size
C3/EEBE:	64ED    	STZ $ED        ; Attrib LB: 0
C3/EEC0:	64EE    	STZ $EE        ; Attrib HB: 0
C3/EEC2:	A00030  	LDY #$3000     ; VRAM pointer
C3/EEC5:	20B9DD  	JSR $DDB9      ; Upload data

Fork: Upload large items, tabletop, and overlay graphics
C3/EEC8:	A060DF  	LDY #$DF60     ; 7E/DF60
C3/EECB:	84E7    	STY $E7        ; Set src LBs
C3/EECD:	A97E    	LDA #$7E       ; Bank: 7E
C3/EECF:	85E9    	STA $E9        ; Set src HB
C3/EED1:	A0400B  	LDY #$0B40     ; Bytes: 2880
C3/EED4:	84EB    	STY $EB        ; Set data size
C3/EED6:	64ED    	STZ $ED        ; Attrib LB: 0
C3/EED8:	64EE    	STZ $EE        ; Attrib HB: 0
C3/EEDA:	A00040  	LDY #$4000     ; VRAM pointer
C3/EEDD:	20B9DD  	JSR $DDB9      ; Upload data

Fork: Upload book graphics
C3/EEE0:	A0A0EA  	LDY #$EAA0     ; 7E/EAA0
C3/EEE3:	84E7    	STY $E7        ; Set src LBs
C3/EEE5:	A97E    	LDA #$7E       ; Bank: 7E
C3/EEE7:	85E9    	STA $E9        ; Set src HB
C3/EEE9:	A0000E  	LDY #$0E00     ; Bytes: 3584
C3/EEEC:	84EB    	STY $EB        ; Set data size
C3/EEEE:	64ED    	STZ $ED        ; Attrib LB: 0
C3/EEF0:	64EE    	STZ $EE        ; Attrib HB: 0
C3/EEF2:	A00050  	LDY #$5000     ; VRAM pointer
C3/EEF5:	20B9DD  	JSR $DDB9      ; Upload data

Fork: Upload transparent overlay tilemap (BG2)
C3/EEF8:	A04804  	LDY #$0448     ; 7F/0448
C3/EEFB:	84E7    	STY $E7        ; Set src LBs
C3/EEFD:	A97F    	LDA #$7F       ; Bank: 7F
C3/EEFF:	85E9    	STA $E9        ; Set src HB
C3/EF01:	A08007  	LDY #$0780     ; Bytes: 1920
C3/EF04:	84EB    	STY $EB        ; Set data size
C3/EF06:	64ED    	STZ $ED        ; Attrib LB: 0
C3/EF08:	64EE    	STZ $EE        ; Attrib HB: 0
C3/EF0A:	A00010  	LDY #$1000     ; VRAM pointer
C3/EF0D:	4CB9DD  	JMP $DDB9      ; Upload data

Relocate decompressed tilemap for table
C3/EF10:	A0A0F8  	LDY #$F8A0     ; 7E/F8A0
C3/EF13:	84E7    	STY $E7        ; Set src LBs
C3/EF15:	A97E    	LDA #$7E       ; Bank: 7E
C3/EF17:	85E9    	STA $E9        ; Set src HB
C3/EF19:	A08007  	LDY #$0780     ; Bytes: 1920
C3/EF1C:	84EF    	STY $EF        ; Set data size
C3/EF1E:	4CEED6  	JMP $D6EE      ; Move data

Set to upload BG1 and BG3 tilemaps for actor scene
C3/EF21:	A00018  	LDY #$1800     ; $1800
C3/EF24:	841B    	STY $1B        ; Set VRAM ptr
C3/EF26:	A04978  	LDY #$7849     ; 7E/7849
C3/EF29:	841D    	STY $1D        ; Set src LBs
C3/EF2B:	A97E    	LDA #$7E       ; Bank: 7E
C3/EF2D:	851F    	STA $1F        ; Set src HB
C3/EF2F:	A00008  	LDY #$0800     ; Bytes: 2048
C3/EF32:	8419    	STY $19        ; Set data size
C3/EF34:	A00000  	LDY #$0000     ; $0000
C3/EF37:	8414    	STY $14        ; Set VRAM ptr
C3/EF39:	A04938  	LDY #$3849     ; 7E/3849
C3/EF3C:	8416    	STY $16        ; Set src LBs
C3/EF3E:	A97E    	LDA #$7E       ; Bank: 7E
C3/EF40:	8518    	STA $18        ; Set src HB
C3/EF42:	A00010  	LDY #$1000     ; Bytes: 4096
C3/EF45:	8412    	STY $12        ; Set data size
C3/EF47:	60      	RTS

Unpack and upload apple and shuriken graphics
C3/EF48:	A077F4  	LDY #$F477     ; Source LBs
C3/EF4B:	A9C4    	LDA #$C4       ; Source HB
C3/EF4D:	2061DD  	JSR $DD61      ; Unpack GFX
C3/EF50:	A000C0  	LDY #$C000     ; 7E/C000
C3/EF53:	84E7    	STY $E7        ; Set src LBs
C3/EF55:	A97E    	LDA #$7E       ; Bank: 7E
C3/EF57:	85E9    	STA $E9        ; Set src HB
C3/EF59:	A08003  	LDY #$0380     ; Bytes: 896
C3/EF5C:	84EB    	STY $EB        ; Set data size
C3/EF5E:	64ED    	STZ $ED        ; Attrib LB: 0
C3/EF60:	64EE    	STZ $EE        ; Attrib HB: 0
C3/EF62:	A00060  	LDY #$6000     ; VRAM pointer
C3/EF65:	4CB9DD  	JMP $DDB9      ; Upload GFX

Draw Cyan's katana; unpack and upload glint
C3/EF68:	2036F0  	JSR $F036      ; Handle glint
C3/EF6B:	A02600  	LDY #$0026     ; Tiles: 19
C3/EF6E:	84E0    	STY $E0        ; Set width
C3/EF70:	A00200  	LDY #$0002     ; Tiles: 2
C3/EF73:	84E2    	STY $E2        ; Set height
C3/EF75:	A2E003  	LDX #$03E0     ; Src: 7F/03E0
C3/EF78:	A0A13B  	LDY #$3BA1     ; Dst: 7E/3BA1
C3/EF7B:	4CCDED  	JMP $EDCD      ; Draw katana

Unpack and upload coin graphics
C3/EF7E:	2087EF  	JSR $EF87      ; Unpack data
C3/EF81:	A00060  	LDY #$6000     ; VRAM pointer
C3/EF84:	4CB9DD  	JMP $DDB9      ; Upload data

Unpack skull and coin graphics; prepare upload
C3/EF87:	A04B9D  	LDY #$9D4B     ; Source LBs
C3/EF8A:	A9D9    	LDA #$D9       ; Source HB
C3/EF8C:	2061DD  	JSR $DD61      ; Unpack GFX
C3/EF8F:	A000C0  	LDY #$C000     ; 7E/C000
C3/EF92:	84E7    	STY $E7        ; Set src LBs
C3/EF94:	A97E    	LDA #$7E       ; Bank: 7E
C3/EF96:	85E9    	STA $E9        ; Set src HB
C3/EF98:	A00008  	LDY #$0800     ; Bytes: 896
C3/EF9B:	84EB    	STY $EB        ; Set data size
C3/EF9D:	64ED    	STZ $ED        ; Attrib LB: 0
C3/EF9F:	64EE    	STZ $EE        ; Attrib HB: 0
C3/EFA1:	60      	RTS

Draw Mog's tree; unpack and upload sprites
C3/EFA2:	2036F0  	JSR $F036      ; Do sprites
C3/EFA5:	A00E00  	LDY #$000E     ; Tiles: 7
C3/EFA8:	84E0    	STY $E0        ; Set width
C3/EFAA:	A00800  	LDY #$0008     ; Tiles: 8
C3/EFAD:	84E2    	STY $E2        ; Set height
C3/EFAF:	A22000  	LDX #$0020     ; Src: 7F/0020
C3/EFB2:	A0773A  	LDY #$3A77     ; Dst: 7E/3A77
C3/EFB5:	4CCDED  	JMP $EDCD      ; Draw tree

Draw Gogo's helmet; unpack and upload glint
C3/EFB8:	2036F0  	JSR $F036      ; Handle glint
C3/EFBB:	A01C00  	LDY #$001C     ; Tiles: 14
C3/EFBE:	84E0    	STY $E0        ; Set width
C3/EFC0:	A00900  	LDY #$0009     ; Tiles: 9
C3/EFC3:	84E2    	STY $E2        ; Set height
C3/EFC5:	A22E00  	LDX #$002E     ; Src: 7F/002E
C3/EFC8:	A02D3A  	LDY #$3A2D     ; Dst: 7E/3A2D
C3/EFCB:	4CCDED  	JMP $EDCD      ; Draw helmet

Draw Gau's diving helmet; unpack and upload face
C3/EFCE:	2056F0  	JSR $F056      ; Handle face
C3/EFD1:	A00C00  	LDY #$000C     ; Tiles: 6
C3/EFD4:	84E0    	STY $E0        ; Set width
C3/EFD6:	A00700  	LDY #$0007     ; Tiles: 7
C3/EFD9:	84E2    	STY $E2        ; Set height
C3/EFDB:	A24A00  	LDX #$004A     ; Src: 7F/004A
C3/EFDE:	A0B73A  	LDY #$3AB7     ; Dst: 7E/3AB7
C3/EFE1:	4CCDED  	JMP $EDCD      ; Draw helmet

Draw Terra's cocktail glasses; unpack and upload glint
C3/EFE4:	2036F0  	JSR $F036      ; Handle glint
C3/EFE7:	A00E00  	LDY #$000E     ; Tiles: 7
C3/EFEA:	84E0    	STY $E0        ; Set width
C3/EFEC:	A00500  	LDY #$0005     ; Tiles: 5
C3/EFEF:	84E2    	STY $E2        ; Set height
C3/EFF1:	A22002  	LDX #$0220     ; Src: 7F/0220
C3/EFF4:	A0353B  	LDY #$3B35     ; Dst: 7E/3B35
C3/EFF7:	4CCDED  	JMP $EDCD      ; Draw glasses

Draw Locke and Celes's bouquet
C3/EFFA:	A01800  	LDY #$0018     ; Tiles: 12
C3/EFFD:	84E0    	STY $E0        ; Set width
C3/EFFF:	A00600  	LDY #$0006     ; Tiles: 6
C3/F002:	84E2    	STY $E2        ; Set height
C3/F004:	A27402  	LDX #$0274     ; Src: 7F/0274
C3/F007:	A0693B  	LDY #$3B69     ; Dst: 7E/3B69
C3/F00A:	4CCDED  	JMP $EDCD      ; Replace tiles

Draw Relm's brush; unpack and upload glint
C3/F00D:	2036F0  	JSR $F036      ; Handle glint
C3/F010:	A01400  	LDY #$0014     ; Tiles: 10
C3/F013:	84E0    	STY $E0        ; Set width
C3/F015:	A00200  	LDY #$0002     ; Tiles: 2
C3/F018:	84E2    	STY $E2        ; Set height
C3/F01A:	A26003  	LDX #$0360     ; Src: 7F/0360
C3/F01D:	A0F33B  	LDY #$3BF3     ; Dst: 7E/3BF3
C3/F020:	4CCDED  	JMP $EDCD      ; Draw brush

Draw an open book
C3/F023:	A01C00  	LDY #$001C     ; Tiles: 14
C3/F026:	84E0    	STY $E0        ; Set width
C3/F028:	A00600  	LDY #$0006     ; Tiles: 6
C3/F02B:	84E2    	STY $E2        ; Set height
C3/F02D:	A2C80B  	LDX #$0BC8     ; Src: 7F/0BC8
C3/F030:	A0D93A  	LDY #$3AD9     ; Dst: 7E/3AD9
C3/F033:	4CCDED  	JMP $EDCD      ; Replace tiles

Unpack and upload card, glint, moogle, and winding key graphics
C3/F036:	A0FBF6  	LDY #$F6FB     ; Source LBs
C3/F039:	A9C4    	LDA #$C4       ; Source HB
C3/F03B:	2061DD  	JSR $DD61      ; Unpack GFX
C3/F03E:	A000C0  	LDY #$C000     ; 7E/C000
C3/F041:	84E7    	STY $E7        ; Set src LBs
C3/F043:	A97E    	LDA #$7E       ; Bank: 7E
C3/F045:	85E9    	STA $E9        ; Set src HB
C3/F047:	A0F00D  	LDY #$0DF0     ; Bytes: 3568
C3/F04A:	84EB    	STY $EB        ; Set data size
C3/F04C:	64ED    	STZ $ED        ; Attrib LB: 0
C3/F04E:	64EE    	STZ $EE        ; Attrib HB: 0
C3/F050:	A00060  	LDY #$6000     ; VRAM pointer
C3/F053:	4CB9DD  	JMP $DDB9      ; Upload GFX

Unpack and upload face graphics for Gau's scene
C3/F056:	A0E5A4  	LDY #$A4E5     ; Source LBs
C3/F059:	A9D9    	LDA #$D9       ; Source HB
C3/F05B:	2061DD  	JSR $DD61      ; Unpack GFX
C3/F05E:	A000C0  	LDY #$C000     ; 7E/C000
C3/F061:	84E7    	STY $E7        ; Set src LBs
C3/F063:	A97E    	LDA #$7E       ; Bank: 7E
C3/F065:	85E9    	STA $E9        ; Set src HB
C3/F067:	A0C000  	LDY #$00C0     ; Bytes: 192
C3/F06A:	84EB    	STY $EB        ; Set data size
C3/F06C:	A00060  	LDY #$6000     ; VRAM pointer
C3/F06F:	4C86DD  	JMP $DD86      ; Upload GFX

Draw Umaro's bones; unpack and upload sprites
C3/F072:	2036F0  	JSR $F036      ; Handle moogles
C3/F075:	2087EF  	JSR $EF87      ; Unpack skull
C3/F078:	A00068  	LDY #$6800     ; VRAM pointer
C3/F07B:	20B9DD  	JSR $DDB9      ; Upload skull
C3/F07E:	A00A00  	LDY #$000A     ; Tiles: 5
C3/F081:	84E0    	STY $E0        ; Set width
C3/F083:	A00500  	LDY #$0005     ; Tiles: 5
C3/F086:	84E2    	STY $E2        ; Set height
C3/F088:	A25600  	LDX #$0056     ; Src: 7F/0056
C3/F08B:	A0373B  	LDY #$3B37     ; Dst: 7E/3B37
C3/F08E:	4CCDED  	JMP $EDCD      ; Draw bones

Free space
C3/F091:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F0B1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F0D1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F0F1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F111:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F131:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F151:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F171:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F191:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F1B1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F1D1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F1F1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F211:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F231:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F251:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F271:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F291:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F2B1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F2D1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F2F1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F311:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F331:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F351:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F371:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F391:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F3B1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F3D1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F3F1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F411:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F431:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F451:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F471:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F491:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F4B1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F4D1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F4F1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F511:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F531:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F551:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F571:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F591:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F5B1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F5D1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F5F1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F611:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F631:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F651:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F671:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F691:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F6B1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F6D1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F6F1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F711:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F731:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F751:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F771:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F791:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F7B1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F7D1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F7F1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F811:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F831:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F851:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F871:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F891:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F8B1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F8D1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F8F1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F911:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F931:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F951:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F971:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F991:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F9B1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F9D1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/F9F1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FA11:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FA31:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FA51:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FA71:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FA91:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FAB1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FAD1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FAF1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FB11:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FB31:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FB51:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FB71:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FB91:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FBB1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FBD1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FBF1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FC11:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FC31:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FC51:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FC71:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FC91:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FCB1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FCD1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FCF1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FD11:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FD31:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FD51:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FD71:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FD91:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FDB1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FDD1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FDF1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FE11:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FE31:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FE51:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FE71:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FE91:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FEB1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FED1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FEF1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FF11:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FF31:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FF51:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FF71:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FF91:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FFB1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FFD1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
C3/FFF1:	FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
